Answers:
请参见此示例,该示例取自此博客条目,但已更新以获取新的语法。它应具有以下效果:
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 -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
由于不允许我以我的声誉对第一个答案写评论,因此在这里做了附录,因为编码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
剪切结尾。
-open命令提示(windows + r-> cmd-> enter)
-然后转到您拥有音频和视频文件的文件夹内
应用此cmd
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Enter ....您将获得一个名为outPutFime.mp4的新文件(音频和视频的合并文件)
-shortest
标签非常漂亮。比@ user136036的答案简单得多。
这为我工作:
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4