日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FFMPEG命令行处理视频进阶——高阶必读

發布時間:2025/7/25 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FFMPEG命令行处理视频进阶——高阶必读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

from: https://blog.csdn.net/zhangamxqun/article/details/80295833
FFMPEG擁有強大的視頻處理能力,可惜的是有很多人不知道如何使用。本文深入介紹如何用編譯好ffmpeg.exe程序處理視頻,既有常用的簡單的處理,也有一些比較少見的高大上的處理,一定能讓你受益匪淺。ffmpeg是一把寶刀,在視頻處理上,基本是一刀在手,天下我有。

首先下載編譯好的ffmpeg程序,可以去下面的網址,https://ffmpeg.zeranoe.com/builds/# 點擊"Donload Build"按鈕下載最新編譯的版本,解壓后可以看到ffmpeg.exe文件用于處理視頻,ffplay.exe文件用于播放視頻。也可以去ffmpeg的官網http://ffmpeg.org/ 下載源碼自己編譯(這個工作量比較大)。

打開命令行窗口,使用cd命令行進入到ffmpeg所在的目錄,接下來就可以直接輸入處理命令了。下面就來介紹各種各樣的命令。下面命令行中的輸入視頻和輸出視頻的路徑必須正確,如果路徑不存在會出錯的哦。

1、知道了視頻流地址如何保存出本地文件:

ffmpeg -i rtmp://122.202.129.136:1935/live/ch4 -map 0 d:\work\yyy.mp4

2、知道了流地址,播放視頻文件:

ffplay -rtsp_transport tcp rtsp://192.168.201.133:554/stream1.sdp

3、提取視頻中的音頻文件:

ffmpeg -i h:\work\yyy.avi -map 0:a d:\work\yyy.mp3

ffmpeg -i rtmp://122.202.129.136:1935/live/ch4 -map 0:a d:\work\yyy.mp3

4、提起多媒體中的視頻(不要音頻)

ffmpeg -i rtmp://122.202.129.136:1935/live/ch4 -map 0:v d:\work\yyy.mp4

5、把音頻的左右聲道分別保存為兩個文件:

ffmpeg -i d:\work\yyy.mp3 -map_channel 0.0.0 d:\work\ch1.mp3 -map_channel 0.0.1 d:\work\ch2.mp3

6、把視頻的音視頻同時分為兩個文件保存:

ffmpeg -i h:\work\video.mp4 -map 0:v d:\work\video2.mp4 -map 0:a d:\work\video.mp3

7、把單純的視頻和單純的音頻合并為一個視頻文件:

ffmpeg -i d:\work\out.mp4 -i d:\work\video.amr -map 0:v -map 1:a d:\work\strange.mp4

8、在視頻的屏幕左上角加一個logo標志:

ffmpeg -i h:\work\video.mp4 -i h:\work\psu.png -filter_complex ‘overlay’ d:\work\video.mp4

9、輸出視頻的yuv數據:

ffmpeg -i d:\work\video.mp4 d:\work\hugefile.yuv

10、把視頻的圖像批量輸出((-r 1)一秒鐘保存一張,縮放為640*480,名稱為foo-001.jpeg, foo-002.jpeg…):

ffmpeg -i h:\work\video.mp4 -r 1 -s 640x480 -f image2 d:\work\foo-%03d.jpeg

還可以添加更多參數得意

ffmpeg -i h:\work\video.mp4 -r 1 -ss 50 -vframes 3 -s 640x480 -f image2 d:\work\foo-%03d.jpeg

11、把一堆圖像合成為一個視頻:

ffmpeg -f image2 -framerate 25 -i d:\work\foo-%03d.jpeg -s 1280x720 h:\work\foo.avi

12、轉換視頻的分辨率:

ffmpeg -i D:\work\hisense1.mp4 -vcodec libx264 -s 640x480 -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k D:\work\outputfile.mp4

13、直接將視頻變為原來大小的一半:

ffmpeg -i D:\work\yyy2642.mp4 -vf scale=iw/2:ih/2 D:\work\yyy2642sm.mp4

14、裁剪視頻中間的一段視頻為一個單獨視頻:

ffmpeg -ss 00:00:30 -vsync 0 -t 00:00:30 -i D:\work\yyy2642.mp4 -vcodec libx264-acodec libfaac D:\work\outputfile.mp4

15、裁剪出視頻屏幕正中間的一部分,寬度和高度都是原來視頻的一半:

ffmpeg -i D:\work\yyy2642.mp4 -vf crop=iw/2:ih/2 D:\work\yyy2642sm.mp4

16、裁剪出視頻屏幕任意一部分(注意參數):

ffmpeg -i D:\work\yyy2642.mp4 -vf crop=iw/3:ih/3?100 D:\work\yyy2642sm.mp4

17、播放時自動檢測視頻周圍的黑框(播放時,輸出窗口可以看到檢測出的crop),這個其實不是視頻處理,只是播放效果:

ffplay D:\work\yyy2642.mp4 -vf cropdetect

18、在視頻的四周增加一圈30個像素的粉紅色邊框:

ffmpeg -i D:\work\yyy2642sm.mp4 -vf pad=iw+60:ih+60:30:30:pink D:\work\pink.mp4

19、視頻水平翻轉:

ffmpeg -i D:\work\yyy2642.mp4 -vf hflip D:\work\outputfile.mp4

20、視頻上下翻轉:

ffmpeg -i D:\work\yyy2642.mp4 -vf vflip D:\work\outputfile.mp4

21、視頻旋轉:

ffmpeg -i D:\work\yyy2642.mp4 -vf transpose=2 D:\work\outputfile.mp4

22、視頻模糊處理(注意參數),可以讓視頻變模糊:

ffmpeg -i D:\work\yyy2642.mp4 -vf boxblur=1:10:4:10 D:\work\outputfile.mp4

23、視頻銳化處理,一定程度可以讓視頻變清晰:

ffmpeg -i D:\work\yyy2642.mp4 -vf unsharp=5:5:1.0:5:5:0.0 D:\work\outputfile.mp4

24、刪除標志logo:

ffmpeg -i D:\work\outputfile.mp4 -vf delogo=10:10:256:256:0:0 D:\work\outputfile1.mp4

25、添加文字到視頻上

ffmpeg -i D:\work\yyy2642.mp4 -vf drawtext=“fontfile=arial.ttf:text=‘Happy Holidays’:x=(w-tw)/2:y=(h-th)/2:fontcolor=green:fontsize=60” D:\work\outputfile.mp4

其中arial.ttf是從windows\fonts目錄下拷貝過來的字體文件

26、添加上方的字符滾動顯示(顯示中文字符):

ffmpeg -i D:\work\yyy2642.mp4 -vf drawtext=“fontfile=ARIALUNI.ttf:text=‘程序明_Welcom’:x=w-mod(t*50,w):fontcolor=darkorange:fontsize=30” D:\work\outputfile.mp4

添加的文字顯示在下方:
ffmpeg -i D:\work\yyy2642.mp4 -vf drawtext=“fontfile=ARIALUNI.ttf:text=‘程序明’:x=w-mod(t*50,w):y=h-th:fontcolor=darkorange:fontsize=30”

27、視頻右上角顯示當前系統時間:

ffmpeg -i D:\work\yyy2642.mp4 -vf drawtext=“fontfile=arial.ttf:x=w-tw:fontcolor=white:fontsize=30:text=’%{localtime:%H\:%M\:%S}’” D:\work\outputfile.mp4

28、視頻播放時晃動:

ffplay -i D:\work\yyy2642.mp4 -vf crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2+((in_h-out_h)/2)*sin(n/7)

29、播放時視頻色彩不斷變換:

ffplay -i D:\work\yyy2642.mp4 -vf hue=“H=2PIt:s=sin(2PIt)+1”

30、彩色視頻轉變為黑白視頻:

ffmpeg -i D:\work\yyy2642.mp4 -vf lutyuv=“u=128:v=128” D:\work\outputfile.mp4

31、視頻轉碼為原來的播放速度的兩倍:

ffmpeg -i D:\work\yyy2642.mp4 -vf setpts=PTS/2 -af atempo=2 D:\work\outputfile.mp4

32、視頻轉為gif(參數指定了位置):

ffmpeg -i D:\work\yyy2642.mp4 -ss 50 -t 10 -pix_fmt rgb24 -s 640x480 D:\work\jidu.gif

33、從視頻里面截取幾張圖到一張圖里(大圖是2行3列):

ffmpeg -i D:\work\yyy2642.mp4 -frames 1 -vf “select=not(mod(n,300)),scale=320:240,tile=2x3” D:\work\out.png

34、兩個文件左右合并(無敵了):

ffmpeg.exe -i “D:\work\yyy264.mp4” -vf “[in] scale=iw/2:ih/2, pad=2*iw:ih [left]; movie=‘D:\work\yyy2642.mp4’, scale=iw/2:ih/2 [right];[left][right] overlay=main_w/2:0 [out]” -b:v 768k D:\work\output.mp4

35、兩個文件上下合并(無敵了):

ffmpeg.exe -i “D:\work\yyy264.mp4” -vf “[in] scale=iw/2:ih/2, pad=iw:2*ih [top]; movie=‘D:\work\yyy2642.mp4’, scale=iw/2:ih/2 [bottom];[top][bottom] overlay=0:main_h/2 [out]” -b:v 768k D:\work\output.mp4

36、文件重疊合并,把第二個文件的視頻縮小為四分之一后,放到第一個視頻的寬高八分之一畫面處(更無敵):

ffmpeg.exe -i “D:\work\yyy264.mp4” -vf “[in] scale=iw:ih, pad=iw:ih [top]; movie=‘D:\work\yyy2642.mp4’, scale=iw/4:ih/4 [bottom];[top][bottom] overlay=main_w/8:main_h/8 [out]” -b:v 768k D:\work\output.mp4

37、普通的按順序合并兩個視頻:

ffmpeg -i D:\work\yyy264.mp4 -qscale 0 D:\work\inputfile_01.mpg

ffmpeg -i D:\work\yyy2642.mp4 -qscale 0 D:\work\inputfile_02.mpg

copy /b “D:\work\inputfile_01.mpg”+“D:\work\inputfile_02.mpg” “D:\work\inputfile_all.mpg”

ffmpeg -i D:\work\inputfile_all.mpg -qscale 0 D:\work\outputfile.mp4

38、音頻的分割合并

把第一段音頻分成兩部分

ffmpeg.exe -ss 00:00:08.5 -vsync 0 -t 00:00:09 -i file1.mp3 file1end.mp3

ffmpeg.exe -ss 00:00:00 -vsync 0 -t 00:00:08 -i file1.mp3 file1New.mp3

把第一段音頻的后半部分和第二段混音合并

ffmpeg -i file2.mp3 -i file1end.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 file2forNew1.mp3

把第二段音頻混音好的音頻,分成前后兩部分:

ffmpeg.exe -ss 00:00:00 -vsync 0 -t 00:00:04 -i file2forNew1.mp3 file2New.mp3

ffmpeg.exe -ss 00:00:04 -vsync 0 -t 00:00:05 -i file3.mp3 file2End.mp3

再把第二段的后半部分和第三段混音合并:

ffmpeg -i file3.mp3 -i file2End.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 file3New.mp3

把新的三部分音頻首尾連接連到一起:

ffmpeg -i file1New.mp3 -qscale 0 inputfile_01.mpg

ffmpeg -i file2New.mp3 -qscale 0 inputfile_02.mpg

copy /b “inputfile_01.mpg”+“inputfile_02.mpg” “inputfile_all.mpg”

ffmpeg -i file3New.mp3 -qscale 0 inputfile_05.mpg

copy /b “inputfile_all.mpg”+“inputfile_05.mpg” “inputfile_al2.mpg”

ffmpeg -i inputfile_al2.mpg -qscale 0 file5.mp4

ffmpeg -i file5.mp4 -map 0:a result.mp3

上面的所有命令都是筆者自己親自測試使用的,其中有些命令行帶有不少參數,參數需要根據實際情況修改,如果有命令不理解的歡迎提問。筆者盡量在百忙之中擠出時間答疑

版權聲明:本文為CSDN博主「明天繼續」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhangamxqun/article/details/80295833

總結

以上是生活随笔為你收集整理的FFMPEG命令行处理视频进阶——高阶必读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。