如何在ffmpeg中合并音频和视频文件


Answers:


260

合并视频和音频,并进行音频重新编码

请参见此示例,该示例取自此博客条目,但已更新以获取新的语法。它应具有以下效果:

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仅将来自第一输入的第一视频流和来自第二输入的第一音频流用于输出文件。


我试过了,但是ffmpeg在合并时冻结了
Sandy

4
我不认为mp4容器可以包含WAV音频流。试试ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
路加福音

1
我正在使用它,它正在从输入音频中替换原始音频。如果要合并输入音频和输入视频的音频怎么办?
Iqbal Malik

非常
漂亮的

太好了,我使用ffmpeg -i video.mp4 -i audio.wav \ -c:v复制-c:a aac -strict实验output.mp4将MP3与Wav文件合并... => mp4 5分钟,渲染30秒..谢谢
索尼达

12

由于不允许我以我的声誉对第一个答案写评论,因此在这里做了附录,因为编码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

4
您也可以只使用-shortest剪切结尾。
nyuszika7h 2016-03-25

5

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

-然后转到您拥有音频和视频文件的文件夹内

应用此cmd

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

Enter ....您将获得一个名为outPutFime.mp4的新文件(音频和视频的合并文件)


2
确实没有必要在此处描述如何使用命令行。几乎暗示用户将能够弄清楚这一点。特别是因为请求者指定了FFmpeg。一样,-shortest标签非常漂亮。比@ user136036的答案简单得多。
凯特

3
这将重新编码所有内容,可能不是所需要的。
mivk 2015年


“ffmpeg的”不被识别为内部或外部的命令,
UniCoder

您必须将ffmpeg添加到PATH wikihow.com/Windows上的Install
Arete


1

尝试使用Mencoder(是的,它是基于ffmpeg的,但您永远不会知道)。我用这个-audiofile论点。不过,我通常会使用ffmpeg,因此请适量服用此建议。

而且,如果您使用Windows,Mediacoder(可悲的是不再开放源代码)可以工作……基本上,它是许多gnu编码器和一些非自由编码器的前端。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.