題 如何在ffmpeg中合併音頻和視頻文件


我想將音頻文件(.wav或.au格式)與視頻文件(.mp4格式)合併。

請建議我如何實現這一目標。我想將這些文件合併到新的.mp4視頻文件中。 ffmpeg命令非常受歡迎。


123
2018-05-01 07:45


起源


這裡有一篇不錯的文章也可能有用...... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg - Simon East


答案:


合併視頻和音頻,音頻重新編碼

看這個例子,取自 這篇博客文章 但更新了更新的語法。它應該是以下效果:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

在這裡,我們假設視頻文件還沒有包含任何音頻流,並且您希望輸入格式與輸入格式相同(此處為MP4)。

上述命令對音頻進行轉碼,因為MP4不能承載PCM音頻流。如果需要,您可以使用任何其他所需的音頻編解碼器。見 AAC編碼指南 了解更多信息。

如果您的音頻或視頻流較長,則可以添加 -shortest 選項,以便一旦文件結束,ffmpeg將停止編碼。

無需重新編碼即可複制音頻

如果你的輸出容器可以處理(幾乎)任何編解碼器 - 比如MKV - 那麼你可以簡單地複制音頻和視頻流:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

替換音頻流

如果您的輸入視頻已包含音頻,並且您想要替換它,則需要告訴ffmpeg要採用哪個音頻流:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

map 選項 使ffmpeg僅使用來自第一個輸入的第一個視頻流和來自輸出文件的第二個輸入的第一個音頻流。


199
2018-05-01 09:53



我試過了,但ffmpeg在合併時凍結了 - Sandy
我不認為mp4容器可以有wav音頻流。嘗試 ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv - Luke
我正在使用它,它正在替換輸入音頻的原始音頻。如果我想將輸入音頻與輸入視頻的音頻合併,該怎麼辦? - Iqbal Malik
非常甜蜜的命令行...... - Chandra Nakka
太棒了,我使用ffmpeg -i video.mp4 -i audio.wav \ -c:v copy -c:aac -strict experimental output.mp4將MP3與Wav文件合併... => mp4 5分鐘,渲染30秒..謝謝 - sonida


因為我不允許在我的聲譽的第一個答案中寫評論,這是一個附錄,因為我在編碼webms時遇到了這個問題。
如果您的音頻流比例如視頻流更長,你必須剪切它,否則你將最後一個視頻幀作為靜止圖像和音頻運行。

要剪切任一流,可以在每個-i“file.ext”之前使用-ss [hh:mm:ss] -t [ss]。
-ss [...]將定義要切割的起點
-t [...]將以秒為單位定義段的長度
 
例:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

9
2018-01-10 01:11



你也可以使用 -shortest 削減結束。 - nyuszika7h


-open命令promt(windows + r - > cmd-> enter)

然後轉到你有音頻和視頻文件的文件夾裡面

應用此cmd

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

輸入....你會得到一個名為outPutFime.mp4的新文件(合併的音頻和視頻文件)


4
2018-04-16 07:18



實際上沒有必要在此處描述如何使用命令行。這幾乎意味著用戶將能夠解決這個問題。特別是因為提問者指定了FFmpeg。一切都是這樣的 -shortest 標籤非常漂亮。比@ user136036的答案簡單得多。 - Kat
這將重新編碼所有內容,這可能不是想要的。 - mivk
adaptivesamples.com/how-to-install-ffmpeg-on-windows - UniCoder
'ffmpeg'不被識別為內部或外部命令, - UniCoder
您必須將ffmpeg添加到PATH wikihow.com/Install-FFmpeg-on-Windows - Arete


這對我有用:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4

3
2018-03-05 15:29



它部分為我工作,不適用於所有輸入,一些結果輸入視頻在輸出中保持相同 - NarendraJi
詳細: superuser.com/questions/590201/add-audio-to-video-using-ffmpeg - Vadzim


嘗試使用mencoder(是的,它是基於ffmpeg,但你永遠不知道)。我用 -audiofile 論點。不過,我一般都會使用ffmpeg,所以請大家注意這個建議。

並且,如果你使用Windows,Mediacoder(不再是開源的)可以工作......它基本上是許多gnu編碼器和一些非自由編碼器的前端。


1
2018-03-12 22:47