我想将音频文件(.wav或.au格式)与视频文件(.mp4格式)合并。

请建议我如何实现此目的。我想将这些文件合并为新的.mp4视频文件。 ffmpeg命令将非常受欢迎。

评论

这里有一篇体面的文章可能也有帮助... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg

#1 楼

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

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

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


这里,我们假定视频文件尚不包含任何音频流,并且您希望具有相同的音频流输出格式(此处为MP4)作为输入格式。

由于MP4无法承载PCM音频流,因此上述命令可对音频进行转码。您可以根据需要使用任何其他所需的音频编解码器。有关更多信息,请参阅FFmpeg Wiki: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 -map 0:v:0 -map 1:a:0 output.mp4


-map选项使ffmpeg仅将来自第一个输入的第一个视频流和来自第二个输入的第一个音频流用于输出文件。

评论


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

–桑迪
2011年5月1日,11:41



我不认为mp4容器可以包含WAV音频流。尝试ffmpeg -i audio.wav -i video.mp4 -acodec复制-vcodec复制-f mkv output.mkv

–卢克
13年3月12日在23:29

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

–伊克巴尔·马利克(Iqbal Malik)
2014年1月31日7:00

非常可爱的命令行...

–钱德拉·纳卡(Chandra Nakka)
2014年9月3日下午4:37

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

–sonida
15年5月24日在18:55

#2 楼

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


评论


您也可以只使用-shortest来减少结尾。

–nyuszika7h
16 Mar 25 '16在15:22

#3 楼

打开命令promt(windows + R-> Cmd + Enter)。然后转到您拥有音频和视频文件的文件夹内。应用以下命令:

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


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

评论


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

–凯特
15年5月14日在17:08



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

– mivk
2015年11月2日在22:00

adaptivesamples.com/how-to-install-ffmpeg-on-windows

– UniCoder
16 Dec 8'在12:24

'ffmpeg'无法识别为内部或外部命令,

– UniCoder
16 Dec 8'在12:24

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

–娱乐
17 Mar 27 '17 at 16:14

#4 楼

这对我有用:

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


评论


它对我来说部分起作用,而不是对所有输入都起作用,因此某些输出的输入视频在输出中保持不变

– Narendra Singh
16-09-24在11:13

详细信息:superuser.com/questions/590201/add-audio-to-video-using-ffmpeg

–Vadzim
18年1月3日在21:16

#5 楼

尝试使用Mencoder(是的,它是基于ffmpeg的,但您永远不会知道)。我使用-audiofile参数。不过,我通常会使用ffmpeg,所以请稍加盐渍地接受此建议。

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

#6 楼

如果要合并长度不同的音频和视频,并应用“淡入”和“淡出”功能,请执行以下操作:

ffmpeg -i Video001.mp4 -i Audio001.mp3 -af afade=t=in:st=0:d=3,afade=t=out:st=47:d=4 -c:v copy -c:a aac -shortest Output.mp4


视频的长度为51,所以我选择了3 [Sec]的淡入和4 [Sec]的淡出*。由于衰落是由滤波器施加的,因此需要对音频进行转码。在上述情况下,我选择了aac编码。

答案很大程度上取决于@PatrickGeorgi的答案。

#7 楼

您也可以尝试使用Mencoder组合音频和视频文件
https://youtu.be/1IHFp2eROYk

#8 楼

我已经制作了一个Python脚本来执行此操作,您可以根据需要尝试。
在github上获取它:
https://github.com/mmakarov/replicator
或查看此处的视频:
https://www.youtube.com/watch?v=4Uu1hS3-eQM

复制器是一个Python脚本,用于合并一些透明的视频文件
,带有mp3音轨的文本区域。最终视频将与音频轨道完全相同
长度。视频的长度会自动
计算。
我尝试将此脚本制作为合并具有
PNG透明叠加层的任何视频序列文件,并在视频上添加文本区域以及mp3音频
轨道。生成的视频文件已准备好在YouTube或任何其他视频托管服务上上传。
您可以根据自己的喜好进行更改。
如何使用它:0。打开终端并输入:git clone
https://github.com/mmakarov/replicato ...

将视频文件作为“ source1.mp4”,“ source2.mp4”等放置到项目目录中
将PNG透明图像作为'overlay.png'放置到项目目录中
将MP3文件作为'voice.mp3'放置到项目目录中
在终端运行中:python3 source-to-medium.py将被创建为'medium.mp4')
根据需要输入您的文本区域内容...需要花费一些时间才能将source * .mp4文件转换为一个medium.mp4
在终端运行中:python3 medium- to-fin.py ...它将计算最终的视频长度,除以voice.mp3.length()/ medium.mp4.length()=
silent_fin.mp4.length()...也将添加语音.mp3转换为
silent_fin.mp4作为音轨
最后,您有了youtube_ready.mp4文件

警告:来源中有俄语注释!