成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

FFmpeg命令幫你實現音視頻編輯

開發
FFmpeg是一個非常著名的多媒體框架開源項目,它可用于編碼,解碼,轉碼,音視頻復用,音視頻解復用,播放等重要功能。

作者|戶銳,單位:中國移動智慧家庭運營中心

Labs 導讀

FFmpeg是一個非常著名的多媒體框架開源項目,它可用于編碼,解碼,轉碼,音視頻復用,音視頻解復用,播放等重要功能。FFmpeg作為一個多媒體框架被各大音視頻播放器軟件使用于支持廣泛的音視頻格式,還有很多Android ROM為了提高音視頻的兼容性也內置了ffmpeg。FFmpeg項目中的ffmpeg工具具有非常強大的功能,可以滿足我們日常對視頻裁剪,合并和編輯的需求。

Part 01  FFmpeg簡介

FFmpeg是一個非常著名的多媒體框架,它可用于編碼,解碼,轉碼,音視頻復用,音視頻解復用,播放等重要功能,ffmpeg采用LGPL V2.1, 其中部分可選組件采用GPL V2許可證,其官網地址:https://ffmpeg.org/。

FFmpeg作為一個多媒體框架被各大音視頻播放器軟件使用用于支持廣泛的音視頻格式,還有很多Android ROM為了提高音視頻的兼容性也內置了ffmpeg,中國移動的AOS-RM操作系統也內置了ffmpeg用于提供強大的兼容性。另一方面FFmpeg項目還提供了幾個重要工具,分別是ffmpeg, ffplay, ffprobe。其中ffmpeg主要用于視頻編輯操作,比如轉碼,為視頻添加背景音樂,添加特效等, ffplay工具主要用于播放音視頻文件,ffprobe則用于查看音視頻文件的詳細信息。

Part 02  FFmpeg工具下載和安裝

?Windows版本下載頁面:https://ffmpeg.org/download.html#build-windows

Windows版本5:https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-5.0.1-full_build.7z

下載后解壓到本地,并配置環境變量,將ffmpeg/bin路徑加入到PATH中。

圖片

打開Windows命令行,輸出ffmpeg -version,驗證ffmpeg命令是否可以正常執行。

圖片

Part 03  FFmpeg命令使用

方式ffmpeg主要用于視頻編輯操作,比如轉碼,為視頻添加背景音樂,添加特效等

時間單位說明:-t 后面的時間單位為秒, -ss后面的時間格式是HH:MM:SS(時:分:秒)

3.1. 調整視頻文件分辨率

命令:ffmpeg -i 輸入文件名 -s 寬度*高度 輸出文件名

  • 示例:ffmpeg -i 1.mp4 -s 640*480 out.mp4
  • 示例說明:將1.mp4文件的分辨率修改為640*480

3.2.視頻文件容器格式轉換

命令:ffmpeg -i 輸入文件 輸出文件

  • 示例:ffmpeg -i 1.mp4 1.avi
  • 示例說明:將mp4格式轉換為avi格式
  • 查看支持的格式:ffmpeg  -formats

3.3.視頻文件編碼器格式轉換

命令:ffmpeg -i 輸入文件 -vcodec 視頻格式 -acodec 音頻格式輸出文件

  • 示例:ffmpeg -i 1.mp4 -vcodec hevc -acodec mp3 out.mp4
  • 示例說明:將視頻編碼格式轉為HEVC,音頻編碼格式轉換為MP3
  • 查看支持的格式:ffmpeg  -codecs

3.4.多個視頻合并

3.4.1.使用FFmpeg concat分離器

說明:要求編碼格式一致。建議合并前將各個文件的分辨率轉換為一致,否則會導致視頻無法正常播放。另外使用此命令前需要先生成視頻列表文件,可以手動創建也可以使用命令。

命令:ffmpeg -f concat -i 視頻列表文件 -c copy 輸出文件

  • 示例:ffmpeg -f concat -i filelist.txt -c copy output.mp4
  • 示例說明:將filelist.txt中指定的文件合并為output.mp4

在windows命令行生成filelist.txt(讀取my開頭的mp4文件):(for %i in (my*.mp4) do @echo file '%i') > filelist.txt

  • filelist.txt的內容
  • file 'my1.mp4'
  • file 'my2.mp4'
  • file 'my3.mp4'

3.4.2.使用FFmpeg concat協議

說明:只有特定格式的文件能連接-如:mpg或mpeg transport stream格式

命令:ffmpeg -i "concat:文件1|文件2|文件3" -c copy 輸出文件

  • 示例:ffmpeg -i "concat:1.mpg|2.mpg|3.mpg" -c copy output.mpg

ffmpeg -i "concat:1.ts|2.ts|3.ts" -c copy output.ts

  • 示例說明:將1.mpg, 2.mpg, 3.mpg文件合并為output.mpg

3.5.多張圖片轉為視頻

命令:ffmpeg -r 每秒圖片張數 -i  圖片文件名 視頻文件名

  • 示例:ffmpeg -r 3 -i %3d.jpg out.mp4
  • 示例說明:將當前目錄001.jpg到999.jpg的圖片,以每秒3張圖片的速度合成視頻文件out.mp4

3.6.多張圖片轉為視頻并添加背景音樂

命令:ffmpeg -r 每秒圖片張數 -i 圖片文件名 -i 音頻文件 視頻文件名

  • 示例:ffmpeg -r 3 -i %3d.jpg -i test.mp3  out2.mp4
  • 示例說明:將當前目錄001.jpg到999.jpg的圖片,以每秒3張圖片的速度合成視頻文件out.mp4,同時添加音頻
  • 補充:如果音頻文件的長度大于視頻的文件,則合成后的視頻會停留在最后一個畫面播放音頻,此時可以加上-shortest參數,完整的命令ffmpeg -r 3 -i %3d.jpg -i test.mp3 -shortest  out2.mp4

3.7.從視頻中提取圖片

命令:ffmpeg -i 原始視頻文件 -ss 開始時間 -t 時間長度 -s  寬度*高度 -r 每秒圖片張數 輸出圖片文件名

  • 示例:ffmpeg -i 1.mp4 -ss 00:00:05 -t 5 -s 640*624 -r 3 %3d.jpg
  • 示例說明:從1.mp4文件的5秒開始往后的5s內容獲取640*624分辨率的圖片,每秒獲取3張圖片,%3d.jpg表示圖片的名字以001.jpg, 002,.jpg的形式存在。圖片的分辨率最好和視頻的分辨率一致,可以用ffproble -i 1.mp4的方式獲取視頻的分辨率信息。

3.8.視頻文件去除音頻

命令:ffmpeg -i 原始視頻文件 -vcodec copy -an 去除音頻后的視頻文件

  • 示例:ffmpeg -i 1.mp4 -vcodec copy -an out.mp4
  • 示例說明:-vcodec copy表示視頻編碼格式不變, -an表示刪除音頻

3.9.視頻文件添加背景音樂

命令1:ffmpeg -i 原始視頻文件 -i 背景音樂文件 -filter_complex [1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix -t 視頻時間 添加背景音樂后的視頻文件

  • 示例:ffmpeg -i 1.mp4 -i test.mp3 -filter_complex [1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix -t 10 out.mp4
  • 示例說明:-filter_complex濾鏡,  [1:a]aloop=loop=-1:size=2e+09[out];將背景音無限循環, [out][0:a]amix將背景音和視頻中的音頻混合, -t 10文件時長,單位為秒,建議取值原始視頻總時長

命令2:ffmpeg -i 原始視頻文件 -stream_loop -1 -i 背景音樂文件 -filter_complex [0:a][1:a]amix -t 時長 添加背景音樂后的視頻文件

  • 示例:ffmpeg -i video.mp4 -stream_loop -1 -i test.mp3 -filter_complex [0:a][1:a]amix -t 10  out4.mp4
  • 示例說明:-stream_loop -1 參數-1代表循環輸入源(背景音樂),[0:a][1:a]amix 將0和1號的音頻流進行混合, -t 10文件時長,單位為秒,建議取值原始視頻總時長

3.10.視頻文件替換音頻

命令:ffmpeg -an -i 原始視頻文件 -stream_loop -1 -i 背景音樂文件 -t 時長 輸出視頻文件

  • 示例:ffmpeg -an -i 1.mp4 -stream_loop -1 -i test.mp3 -t 11 out.mp4
  • 示例說明:將test.mp3文件添加到1.mp4中,并替換1.mp4中的原始音頻

3.11.視頻剪輯:保留部分片段

3.11.1.去除片頭

命令:ffmpeg -ss 開始時間  -i 原始視頻文件  剪輯后的視頻文件

  • 示例:ffmpeg -ss 5 -t 10 -i  1.mp4  out.mp4
  • 示例說明:去除片頭5秒的內容,保存到out.mp4

3.11.2.保留中間區域

命令:ffmpeg -ss 開始時間 -t 剪輯后的時間總長度 -i 原始視頻文件  剪輯后的視頻文件  時間單位為秒

  • 示例:ffmpeg -ss 5 -t 10 -i  1.mp4  out.mp4
  • 示例說明:獲取1.mp4文件的5s開始保留10s長度的內容,保存到out.mp4

3.11.3.保留中間區域

命令:fmpeg -ss 開始時間 -i 原始視頻文件 -to 結束時間 -c 剪輯后的視頻文

  • 示例:fmpeg -ss 00:00:05 -i 1.mp4 -to 00:00:10 -c copy out.mp4
  • 示例說明:獲取1.mp4文件的00:00:05到00:00:10的內容,保存到out.mp4

3.12.加快播放速度

3.12.1.視頻加速

命令:ffmpeg -i 原始視頻文件  -filter:v "setpts=倍速的倒數*PTS"  編輯后的視頻文件

  • 示例:ffmpeg -i test.mp4  -filter:v "setpts=0.5*PTS" output.mp4
  • 示例說明:-filter:v "setpts=0.5*PTS"表示2倍速,0.5=1/2,取值0.25表示4倍速,取值為2時表示0.5倍慢速播放。倍速的倒數范圍[0.25, 4]

3.12.2.音頻加速

命令:ffmpeg -i 原始視頻文件 -filter:"atempo = 倍速" -vn 編輯后的視頻文件

  • 示例:ffmpeg -i test.mp4 -filter:"atempo = 2.0" -vn output.mp4
  • 示例說明:--filter:"atempo = 2.0"表示2倍速atempo配置區間在0.5和2.0之間, -vn表示移除視頻

3.12.3.音視頻同時加速

命令:ffmpeg -i 原始視頻文件  -filter:v "setpts=倍速的倒數*PTS"  編輯后的視頻文件

  • 示例:ffmpeg -i test.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output2.mp4
  • 示例說明:音頻和視頻都2倍速

  • 示例2:ffmpeg -i test.mp4 -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" -map "[v]" -map "[a]" output3.mp4
  • 示例2說明:音頻和視頻都4倍速,由于atempo最大值為2,因此設置了兩次

3.13.圖片轉場特效

命令:ffmpeg -loop 1 -t 時長 -i 圖片文件名 -loop 1 -t 時長 -i 圖片文件名 -filter_complex "xfade=transition=特效名:duration=特效時長:offset=視頻做轉場的起始位置,format=yuv420p" 編輯后的視頻文件

  • 示例:ffmpeg -loop 1 -t 3 -i 1.jpg -loop 1 -t 3 -i 2.jpg -filter_complex "xfade=transition=rectcrop:duration=1:offset=2,format=yuv420p" out.mp4
  • 示例說明:要求圖片1.jpg和2.jpg的分辨率一致,duration=1:offset=2表示轉場效果從第2秒開始持續1秒。transition=rectcrop是轉場效果,rectcrop可以修改為其他轉場效果

可以用的特效參考:https://trac.ffmpeg.org/wiki/Xfade

3.14.命令常用選項介紹

參考:https://ffmpeg.org/ffmpeg.html

圖片

圖片

責任編輯:未麗燕 來源: 移動Labs
相關推薦

2017-12-22 22:13:22

語音視頻SDK延遲

2022-01-24 20:40:26

HarmonyOS音視頻鴻蒙

2024-10-15 13:30:03

2022-06-20 05:50:41

抖音春節活動視頻發紅包

2023-07-28 07:31:56

FFmpeg開源

2023-03-03 15:40:43

抖音視頻編碼器

2017-12-22 22:33:04

游戲語音音視頻社交

2018-03-07 22:08:16

游戲語音

2022-09-21 11:48:40

端到端音視頻測試用戶體驗

2022-06-20 05:59:35

5G技術音視頻技術安卓系統

2017-12-22 21:06:55

語音視頻SDK聽聲辨位

2024-02-28 08:22:07

2011-11-17 16:26:49

AndroidAdobeAIR

2020-09-27 10:40:06

音視頻即構科技開源中國

2013-03-05 14:03:01

傲游云瀏覽器

2022-07-01 10:59:28

英特爾

2017-09-13 16:12:12

2017-09-19 11:00:09

音視頻技術

2024-06-17 08:03:51

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成视频 | 色欧美片视频在线观看 | 日韩中文字幕一区 | 天天干天天爱天天 | 日韩精品亚洲专区在线观看 | 在线观看三级av | 天天操夜夜骑 | 欧美在线网站 | 国产精品久久久久久妇女6080 | 羞羞的视频免费观看 | 噜噜噜噜狠狠狠7777视频 | 国产精品久久二区 | 国产成人精品一区二 | 国产精品亚洲欧美日韩一区在线 | 老妇激情毛片免费 | 日韩不卡视频在线观看 | 欧美激情五月 | 国产精品欧美精品 | 国产目拍亚洲精品99久久精品 | 亚洲视频一区在线观看 | 在线观看国产视频 | 日韩在线小视频 | 欧美精品一区二区三区四区 在线 | 少妇精品久久久久久久久久 | 日韩精品一区二区三区在线观看 | www.夜夜骑.com| 激情网站在线 | 天天操天天干天天爽 | 日韩欧美一区二区三区免费观看 | 国产精品777一区二区 | 国产一区91精品张津瑜 | 欧美视频中文字幕 | 色播久久 | 自拍偷拍中文字幕 | 久久久久国产精品一区二区 | 国产女人第一次做爰毛片 | 天天操操 | 亚洲一区久久 | 在线亚州| 免费a在线 | 国产精品一区二区三区四区 |