1. 程式人生 > >6_ffmpeg視訊處理工具(視訊剪下、轉碼、合併......)(20181212)

6_ffmpeg視訊處理工具(視訊剪下、轉碼、合併......)(20181212)

ffmpeg視訊處理工具(視訊剪下、轉碼、合併......)

這裡只列舉了一下我個人常用的功能,由於ffmpeg工具太強大,這裡不一一列舉:

1、ffmpeg的下載和安裝


2、ffmpeg常用處理功能


1、視訊分離成圖片序列:video—to—images(即視訊幀)


2、圖片序列合成視訊:images—to—video

3、視訊分離成無聲視訊和音訊:video—to—video&audio


4、視訊剪下:cut 參考

用 -ss 和 -t 選項, 從第 30 秒開始,向後擷取 10 秒的視訊,並儲存:

ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 output.wmv
ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv

達成相同效果,也可以用 -ss 和 -to 選項, 從第 30 秒擷取到第 40 秒:
ffmpeg -i input.wmv -ss 30 -c copy -to 40 output.wmv

值得注意的是,ffmpeg 為了加速,會使用關鍵幀技術, 所以有時剪切出來的結果在起止時間上未必準確。 通常來說,把 -ss 選項放在 -i 之前,會使用關鍵幀技術; 把 -ss 選項放在 -i 之後,則不使用關鍵幀技術。 如果要使用關鍵幀技術又要保留時間戳,可以加上 -copyts 選項:

ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy -copyts cut.mp4


5、視訊格式轉換:format transfer

  1. mkv—to—mp4:mkv格式視訊轉換成mp4格式(參考)

ffmpeg -i input.mkv -y -vcodec copy -acodec copy output.mp4

批量轉換:

for %%i in (*.mkv) do ffmpeg.exe -i “%%i” -vcodec copy -acodec copy “%%~ni.mp4”

  1. flv—to—mp4:mkv格式視訊轉換成mp4格式(參考)

ffmpeg -i input.flv -vcodec h264 -r 25 -b 200 -ab 128 -acodec mp3 -ac 2 -ar 44100 output.mp3

  1. 其他一些格式轉換:

3gp to avi
ffmpeg -i source.3gp -f avi -vcodec xvid -acodec mp3 -ar
22050 destination.avi

flv to 3gp
ffmpeg -i source.flv -s 176×144 -vcodec h263 -r 25 -b 200
-ab 64 -acodec mp3 -ac 1 -ar 8000 destination.3gp

flv to mp4
ffmpeg -i source.flv -vcodec h264 -r 25 -b 200 -ab 128
-acodec mp3 -ac 2 -ar 44100 destination.mp3

avi to mp4
ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab
64k -s 320×240 destination.mp4

mp4 to 3gp
ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200
-ab 12200 -ac 1 -ar 8000 destination.3gp

avi to 3gp
ffmpeg -i source.avi-s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -r 25 -ab 32 -y destination.3gp

mpg to 3gp
ffmpeg -i source.mpg -s qcif -vcodec h263 -acodec mp3 -ac 1
-ar 8000 -ab 32 -y destination.3gp

ffmpeg常用引數說明:

-i :指定要轉換視訊的原始檔
-s : 視訊轉換後視訊的解析度
-vcodec :視訊轉換時使用的編解碼器(video)
-r : 視訊轉換換的楨率(預設25楨每秒)
-b : 視訊轉換換的bit率
-ab : 音訊轉換後的bit率(預設64k)
-acodec : 制度音訊使用的編碼器(audio)
-ac :制定轉換後音訊的聲道
-ar :音訊轉換後的取樣率


5、調整視訊播放速度 (其他倍速調整相應的倍率即可)參考

  1. 加速四倍:

ffmpeg -i TheOrigin.mp4 -vf “setpts=0.25*PTS” UpTheOrigin.mp4

  1. 四倍慢速:

ffmpeg -i TheOrigin.mp4 -vf “setpts=4*PTS” DownTheOrigin.mp4

注:

PTS(Presentation Time Stamp) :顯示時間戳,更多解釋,詳見—>這裡


6、視訊檔案合併

  1. 兩個視訊檔案合併

$ cat mylist.txt
file ‘/path/to/file1’
file ‘/path/to/file2’
file ‘/path/to/file3’
$ ffmpeg -f concat -i mylist.txt -c copy output

  1. 多個視訊檔案合併,更多時候,由於輸入檔案的多樣性,需要轉成中間格式再合成:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi