直接進入主題
?
主要參數:
-i
——設置輸入文件名。-f
——設置輸出格式。-y
——若輸出文件已存在時則覆蓋文件。-fs
——超過指定的文件大小時則結束轉換。-t
——指定輸出文件的持續時間,以秒為單位。-ss
——從指定時間開始轉換,以秒為單位。-t
從-ss
時間開始轉換(如-ss 00:00:01.00 -t 00:00:10.00
即從00:00:01.00開始到00:00:11.00)。-title
——設置標題。-timestamp
——設置時間戳。-vsync
——增減Frame使影音同步。-c
——指定輸出文件的編碼。-metadata
——更改輸出文件的元數據。-help
——查看幫助信息
影像參數:
-b:v
——設置影像流量,默認為200Kbit/秒。(單位請引用下方注意事項)-r
——設置幀率值,默認為25。-s
——設置畫面的寬與高。-aspect
——設置畫面的比例。-vn
——不處理影像,于僅針對聲音做處理時使用。-vcodec( -c:v )
——設置影像影像編解碼器,未設置時則使用與輸入文件相同之編解碼器。
聲音參數:
-b:a
——設置每Channel(最近的SVN版為所有Channel的總合)的流量。(單位請引用下方注意事項)-ar
——設置采樣率。-ac
——設置聲音的Channel數。-acodec ( -c:a )
?——設置聲音編解碼器,未設置時與影像相同,使用與輸入文件相同之編解碼器。-an
——不處理聲音,于僅針對影像做處理時使用。-vol
——設置音量大小,256為標準音量。(要設置成兩倍音量時則輸入512,依此類推。)
FFmpeg實踐
?
將一個視頻的 音頻 和加入另一個視頻 三秒搞定
ffmpeg -i 1.webm -i 2.mp4 ?-c copy -map 0 -map 1:1 -y -shortest output.mp4
?
提取音頻
可是如何提取出音頻文件呢?通過Google了解到可以通過【-map】?參數去指定文件中的流文件進行輸出,這個維基百科上沒有提到啊,看來還有很多命令需要去慢慢挖掘。于是我通過下面命令試了一下,成功的將音頻提取出來了。-map 0:1 將第一個輸入文件的第二個流文件輸出到out.wav中,因為上面已經看到了音頻流都是在第二個位置。
? ???ffmpeg -i 2.mp4 -map 0:1 out.wav
?
?已經將第二個視頻的音頻提取出來了,接下來將提取出來的音頻添加到第一個視頻就完事了。這個可以通過 copy 命令來實現,因為兩個文件音頻編碼都是一致的,無需重新編碼,故使用 -c 不重新編碼,沒有質量損失,-shortest選項將導致輸出持續時間與最短輸入流的持續時間相匹配。
真是不折騰,不成長啊!
參考官網:
http://www.ffmpeg.org/documentation.html