![ffmpeg 无需重新编码视频即可将音频(wav)添加到视频(mp4)](https://linux22.com/image/1605060/ffmpeg%20%E6%97%A0%E9%9C%80%E9%87%8D%E6%96%B0%E7%BC%96%E7%A0%81%E8%A7%86%E9%A2%91%E5%8D%B3%E5%8F%AF%E5%B0%86%E9%9F%B3%E9%A2%91%EF%BC%88wav%EF%BC%89%E6%B7%BB%E5%8A%A0%E5%88%B0%E8%A7%86%E9%A2%91%EF%BC%88mp4%EF%BC%89.png)
我只是想知道如何添加音频,同时保持视频上预先存在的音频不变:我做了一些研究,似乎这里有一个类似的问题:
因此,我正在考虑使用取自 slhck 的这段代码段:
ffmpeg -i input.mp4 -i input.wav -c:v copy -map 0:v:0 -map 0:a:0 -map 1:a:0 -c:a:0 copy -c:a:1 aac -b:a 192k output.mp4
正如 slhck 所说,音频编解码器 wav 与 mp4 不兼容,因此必须重新编码,但我只是想确保视频不会被重新编码,我认为这种情况正在发生,因为 ffmpeg 正在以 200 倍的速度执行该过程。
编辑:唯一的问题是存在两个不同的音频流,我在想是否可以有一个组合音频流(将两者混合在一起)。
编辑:在一位非常慷慨的 reddit 用户的帮助下,我成功地通过 amix-filter 将两个流合并为一个。现在它起作用了!
ffmpeg -i input.mp4 -i input.wav -filter_complex [0:a:0][1:a:0]amix=inputs=2:duration=longest[aout] -c:v copy -map 0:v:0 -map [aout] -c:a aac -b:a 192k output.mp4
答案1
在一位慷慨的 reddit 用户的帮助下,我成功地通过 amix-filter 将两个流合并为一个。现在它可以正常工作了!
ffmpeg -i input.mp4 -i input.wav -filter_complex [0:a:0][1:a:0]amix=inputs=2:duration=longest[aout] -c:v copy -map 0:v:0 -map [aout] -c:a aac -b:a 192k output.mp4