實(shí)戰(zhàn)詳細(xì)講解ffmpeg命令的使用(來自一線的經(jīng)驗(yàn),視頻合并&avi轉(zhuǎn)MP4&補(bǔ)空白音頻【收藏下來一定用的到】)(ffmpeg使用教程)

      網(wǎng)友投稿 2521 2022-05-30

      您好,我是碼農(nóng)飛哥,感謝您閱讀本文,歡迎一鍵三連哦。

      本文從實(shí)戰(zhàn)的角度出發(fā)詳細(xì)講解FFmpeg命令的使用。

      干貨滿滿,建議,需要用到時(shí)??纯?。 小伙伴們?nèi)缬袉栴}及需要,歡迎踴躍留言哦~ ~ ~。

      ffmpeg的介紹以及安裝

      基本概念說明

      ffmpeg命令使用的通用格式

      ffmpeg一些常用命令參數(shù)

      通用選項(xiàng)

      視頻選項(xiàng)

      音頻選項(xiàng)

      ffmpeg的實(shí)戰(zhàn)

      1.webm轉(zhuǎn)mp4的命令

      2. 視頻合并命令

      3. 視頻剪切

      4. 提取音頻

      5. 音量調(diào)整

      6. 音頻同軌

      7. 配音音頻補(bǔ)空白音頻

      8. 給視頻添加聲音(視頻和音頻結(jié)合)

      9. avi轉(zhuǎn)mp4

      總結(jié)

      參考

      ffmpeg的介紹以及安裝

      ffmpeg是一個(gè)非??焖俚囊曨l和音頻轉(zhuǎn)換器,也可以從實(shí)時(shí)音頻/視頻源中抓取。它還可以在任意采樣率之間進(jìn)行轉(zhuǎn)換,并使用高質(zhì)量的多相濾波器動(dòng)態(tài)調(diào)整視頻大小。他能夠兼容Windows,Linux以及mac三種操作系統(tǒng)(說白了就是這三種操作系統(tǒng)都能用)。

      ffmpeg的-是:ffmpeg的-

      安裝過程沒啥好說的,按照提示一直點(diǎn)下一步就行了。這里需要說明的一點(diǎn)是ffmpeg安裝好之后最好在PATH中配置ffmpeg的環(huán)境變量。配置好之后在命令行中輸入ffmpeg會(huì)出現(xiàn)如下結(jié)果:

      基本概念說明

      比特率:指的是每秒傳送的比特(bit)數(shù),單位是bps。

      幀速率:指的是每秒刷新的圖片的幀數(shù),也可以理解為圖形處理器每秒鐘能夠刷新幾次。單位是fps(Frames per Second)或者"赫茲(Hz)"。

      ffmpeg命令使用的通用格式

      ffmpeg命令使用的通用格式如下所示:

      ffmpeg [ global_options ] {[ input_file_options ] -i 輸入文件地址} ... {[ output_file_options ] 輸出文件地址} ...

      ffmpeg :表示調(diào)用ffmpeg程序的命令,如果沒有配置環(huán)境變量的話則需要指定ffmpeg.exe的絕對(duì)路徑,就像下面這樣D:\develop\ffmpeg-4.3.2-2021-02-20-full_build\bin\ffmpeg.exe

      global_options:用于指定全局操作參數(shù),比如 -y 參數(shù),可選的參數(shù)。

      input_file_options:用于指定輸入文件的操作參數(shù),比如:-f concat 參數(shù)等

      -i: 指定輸入文件的地址,必要參數(shù)。

      output_file_options: 用于指定輸出文件的操作參數(shù),可選參數(shù)。

      ffmpeg一些常用命令參數(shù)

      要想熟練的使用ffmpeg命令,就需要掌握ffmpeg的一些常用命令參數(shù)。

      通用選項(xiàng)

      通用選項(xiàng)就是指對(duì)音頻視頻都使用的命令參數(shù)。

      視頻選項(xiàng)

      視頻選項(xiàng),指的是只作用于視頻的命令參數(shù)。

      音頻選項(xiàng)

      音頻選項(xiàng),指的是只作用于音頻的命令參數(shù)。

      ffmpeg的實(shí)戰(zhàn)

      說完了ffmpeg的命令參數(shù),接著就讓我們來實(shí)戰(zhàn)一下。示例中的所有視頻和音頻都放在了D:\ffmpeg_test目錄下。

      1.webm轉(zhuǎn)mp4的命令

      webm格式的視頻是所有瀏覽器支持的視頻格式,前端在錄制好視頻之后傳入給后端一個(gè)webm格式的視頻,通常我們需要將webm格式的視頻轉(zhuǎn)成mp4格式的視頻。

      ffmpeg -y -i D:\ffmpeg_test\1.webm -r 30 D:\ffmpeg_test\1.mp4

      這里就是將1.webm的視頻轉(zhuǎn)成每秒30幀的視頻1.mp4。這里指定1.mp4的絕對(duì)路徑,如果不指定的話則生成的視頻文件會(huì)落到當(dāng)前ffmpeg命令的執(zhí)行目錄下。 運(yùn)行結(jié)果是:

      2. 視頻合并命令

      當(dāng)上傳的視頻比較大時(shí)或者用戶分段錄制視頻時(shí),前端會(huì)傳入多段視頻給后端,這時(shí)候就需要進(jìn)行視頻的合并操作。使用ffmpeg命令進(jìn)行視頻合并操作分為兩步。

      首先新建一個(gè)名為filelist.txt 的文件,在該文件中將需要合并的視頻地址寫入該文件。比如D:\ ffmpeg_test目錄下有 1.mp4和2.mp4需要合并。則寫入的格式如下:

      執(zhí)行視頻合并的ffmpeg的命令:

      ffmpeg -f concat -safe 0 -y -i D:\ffmpeg_test\filelist.txt -c copy -strict -2 D:\ffmpeg_test\concated.mp4

      命令的解釋:這里就是將前面的filelist.txt記錄的1.mp4和2.mp4兩個(gè)視頻合并成一個(gè)名為concated.mp4的視頻。

      -f concat:指定該操作是合并操作

      -safe 0:用于避免操作輸入流的權(quán)限問題

      -c copy:用于指定輸出視頻流和輸入視頻流的編碼格式保持一致

      -strict -2: 用于避免opus in MP4 support is experimental這個(gè)問題。

      詳細(xì)可以參考使用ffmpeg進(jìn)行視頻合并時(shí)幾個(gè)問題記錄 Operation not permitted

      運(yùn)行結(jié)果是:

      3. 視頻剪切

      原始視頻弄好之后,用戶可能對(duì)視頻不太滿意,需要將不好的視頻片段剪切掉。其操作命令也很簡(jiǎn)單。

      這就就是將原始視頻concated.mp4從第15秒開始剪切,剪切成一個(gè)25秒的新視頻clip.mp4。

      ffmpeg -ss 15 -t 25 -i D:\ffmpeg_test\concated.mp4 -c:v libx264 -c:a aac -strict experimental D:\ffmpeg_test\clip.mp4

      參數(shù)介紹:

      -ss 15 :從第15秒開始剪切視頻。

      -t 25 :指定剪切后的視頻時(shí)長(zhǎng)為25秒。

      -c:v libx264: 指定視頻的編碼格式為libx264格式。

      -c:a aac :指定音頻的編碼格式為aac格式。

      -strict experimental :安全處理。

      運(yùn)行結(jié)果是:

      4. 提取音頻

      現(xiàn)在用戶滿意的視頻剪切好了,用戶可以進(jìn)入配音環(huán)節(jié)了。在進(jìn)行配音之前我們首先需要將原視頻的音頻從原視頻中分離出來。提取音頻的操作比較簡(jiǎn)單。其命令是:

      ffmpeg -y -i D:\ffmpeg_test\concated.mp4 -vn D:\ffmpeg_test\output.wav

      這里就是從concated.mp4視頻中提測(cè)其原音頻,原音頻的名字是output.wav。這里 -vn 指定了輸出音頻的編碼格式跟視頻的音頻格式保持一致。運(yùn)行結(jié)果是:

      5. 音量調(diào)整

      實(shí)戰(zhàn)詳細(xì)講解ffmpeg命令的使用(來自一線的經(jīng)驗(yàn),視頻合并&avi轉(zhuǎn)MP4&補(bǔ)空白音頻【收藏下來一定用的到】)(ffmpeg使用教程)

      原視頻的音頻分離出來之后,用戶可以一邊播放原音頻,一邊錄制配音了。這時(shí)候用戶可能需要想調(diào)整音頻的音量。調(diào)整音量的操作也很簡(jiǎn)單。

      下面就是將音頻的音量調(diào)整為原來的80%。

      ffmpeg -y -i D:\\ffmpeg_test\\output.wav -af "volume=0.8" D:\\ffmpeg_test\\output_80.wav 或者 ffmpeg -y -i D:\\ffmpeg_test\\output.wav -vol 80 D:\\ffmpeg_test\\output_80.wav

      這里需要注意的是如果是第一種方式的話-af "volume=數(shù)值" volume的數(shù)值必須是除以100之后的值。而-vol 數(shù)值 數(shù)值直接傳入百分比。

      運(yùn)行結(jié)果是:

      6. 音頻同軌

      配音配好之后,我們想著將原音頻和配音音頻合并成一條音頻,這里就需要進(jìn)行音頻同軌了。其命令是:

      ffmpeg -y -i D:\\ffmpeg_test\\org_video_sound_input.wav -i D:\\ffmpeg_test\\org_voice_input.wav -filter_complex amix=inputs=2:duration=longest D:\\ffmpeg_test\\org_voice_output.wav

      這里就是將音頻org_video_sound_input.wav和org_voice_input.wav音頻合并成一條音頻org_voice_output.wav。其核心的命令參數(shù)是:

      -filter_complex amix=inputs=2:duration=longest: 這里使用-filter_complex指定復(fù)雜的過濾器圖,amix=inputs=2:duration=longest采用amix過濾器指定輸入音頻的數(shù)量是2個(gè),時(shí)長(zhǎng)取最長(zhǎng)的那個(gè)音頻的時(shí)長(zhǎng)。運(yùn)行結(jié)果是:

      7. 配音音頻補(bǔ)空白音頻

      配音配好之后,但是一般情況下配音音頻的時(shí)長(zhǎng)不等于原音頻的時(shí)長(zhǎng)。這時(shí)候就需要將沒有配音的時(shí)長(zhǎng)補(bǔ)空白音頻。補(bǔ)空白音頻的操作稍微有點(diǎn)復(fù)雜。其操作思路分為三步。

      生成一個(gè)跟原音頻時(shí)長(zhǎng)一樣的空白音頻,其命令是:

      這里假設(shè)原音頻的時(shí)長(zhǎng)是20秒,所以就生成一個(gè)時(shí)長(zhǎng)為20秒的空白音頻。

      ffmpeg -y -f lavfi -i anullsrc -t 20 D:\\ffmpeg_test\\silence.wav

      將配音音頻開頭部分補(bǔ)空白音頻(比如用戶是從原音頻的第2秒處還是配音,那么配音音頻的前2秒就需要補(bǔ)空白音頻),其命令是:

      ffmpeg -y -i D:\\ffmpeg_test\\silence.wav -i D:\\ffmpeg_test\\org_voice_input.wav -filter_complex "aevalsrc=0:d=2 [s1];[s1][1:a]concat=n=2:v=0:a=1[aout]" -c:v copy -map [aout] D:\\ffmpeg_test\\org_voice_output_silence.wav

      其中:D:\ffmpeg_test\silence.wav 是第一步生成的空白音頻,D:\ffmpeg_test\org_voice_input.wav 是用戶配音的音頻。

      d=2 :用于指定是補(bǔ)空白的點(diǎn),就將0秒到2秒這段時(shí)長(zhǎng)補(bǔ)空白。

      -c:v copy:音頻的編碼格式不變。

      4. 將補(bǔ)完空白音頻的配音音頻跟第一步生成的空白音頻同軌就得到了一個(gè)和原音頻時(shí)長(zhǎng)一樣的配音音頻。其命令是同第前面的第6節(jié),在此就不在贅述了。

      ffmpeg -y -i D:\\ffmpeg_test\\org_voice_output_silence.wav -i D:\\ffmpeg_test\\silence.wav -filter_complex amix=inputs=2:duration=longest D:\\ffmpeg_test\\org_voice_output_result.wav

      運(yùn)行結(jié)果是:

      8. 給視頻添加聲音(視頻和音頻結(jié)合)

      視頻和音頻的結(jié)合,就是將前面生成的帶配音的音頻和原視頻結(jié)合。其命令是:

      ffmpeg -y -i D:\\ffmpeg_test\\user_video.avi -i D:\\ffmpeg_test\\org_voice_output_result.wav -c:v copy -c:a aac -strict experimental D:\\ffmpeg_test\\user_video_target.avi

      輸入視頻是:user_video.mp4,輸入音頻是:org_voice_output_result.wav。輸出視頻是:org_voice_output_result.avi

      -c:v copy: 指定輸出視頻的格式和輸入視頻的格式保持一致。

      -c:a aac : 指定輸出視頻的音頻編碼格式是aac格式。

      運(yùn)行結(jié)果是:

      9. avi轉(zhuǎn)mp4

      有點(diǎn)遺憾的是生成的avi格式的視頻不能在瀏覽器上直接播放。所以,我們需要將avi格式的視頻轉(zhuǎn)成mp4格式的視頻。其轉(zhuǎn)換命令是:

      ffmpeg -y -i D:\\ffmpeg_test\\user_video_target.avi -c:v libx264 -crf 19 -preset slow -c:a aac -b:a 192k -ac 2 D:\\ffmpeg_test\\user_video_target.mp4

      這里輸入視頻是:user_video_target.avi,輸出視頻是:user_video_target.mp4。

      -c:v libx264 :指定視頻的編碼格式是libx264格式。

      -c:a aac :指定音頻的編碼格式是aac格式。

      -b:a 192k :指定輸出視頻的比特率是192kbits。

      運(yùn)行結(jié)果是:

      總結(jié)

      本文從實(shí)戰(zhàn)的角度出發(fā)詳細(xì)介紹了ffmpeg的使用。相信對(duì)讀者朋友們一定大有幫助。

      參考

      ffmpeg 常用命令總結(jié):(avi轉(zhuǎn)MP4、MP4轉(zhuǎn)ts、視頻壓縮、去除視頻聲音、合并音頻和視頻)

      ffmpeg的官方文檔

      我是碼農(nóng)飛哥,再次感謝您讀完本文。

      視頻

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:代碼優(yōu)先還是設(shè)計(jì)優(yōu)先?說說API開發(fā)技術(shù)(七)
      下一篇:快速了解分布式跟蹤系統(tǒng) Zipkin(分布式追蹤系統(tǒng))
      相關(guān)文章
      亚洲Av无码专区国产乱码DVD | 亚洲毛片免费观看| 中文字幕人成人乱码亚洲电影| 亚洲A∨精品一区二区三区| 91丁香亚洲综合社区| 亚洲校园春色另类激情| 亚洲另类精品xxxx人妖| 亚洲一区二区三区无码国产| 亚洲乱人伦精品图片| 久久狠狠爱亚洲综合影院| 亚洲AV成人无码天堂| 在线综合亚洲中文精品| 激情五月亚洲色图| 亚洲一区二区观看播放| 亚洲国产精品日韩av不卡在线| 亚洲av无码专区在线观看亚| 国产精品亚洲av色欲三区| 国产成人综合亚洲| 亚洲综合另类小说色区色噜噜| 在线观看亚洲天天一三视| 自拍偷自拍亚洲精品第1页| 亚洲色婷婷综合久久| 亚洲AV无码乱码在线观看富二代| 亚洲国产精品久久久久婷婷老年| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲美女一区二区三区| 久久精品国产亚洲av麻豆蜜芽| 亚洲欧美日韩久久精品| 国产亚洲精品美女| 久久精品国产精品亚洲人人| 国产亚洲欧洲精品| 日产亚洲一区二区三区| 亚洲一欧洲中文字幕在线| 亚洲日韩国产二区无码| 国产天堂亚洲精品| 亚洲尤码不卡AV麻豆| 亚洲国产一区国产亚洲| 亚洲伊人久久大香线蕉结合| WWW亚洲色大成网络.COM| 国产91精品一区二区麻豆亚洲| 亚洲综合精品香蕉久久网|