使用 Ffmpeg 将音频与视频混合

使用 Ffmpeg 将音频与视频混合

因此,我已经进行了大量测试,但似乎仍然无法使用 ffmpeg 将音频与视频进行复用,也无法弄清楚我哪里做错了,因此非常感谢您的帮助。

我有这个视频。 视频下载

如果我运行 ffmpeg -i,它会给我这个。

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

0:0 流

我有这段音频。 音频下载

当我运行 ffmpeg 时,我得到了这个。

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

因此我要做的是复制我的音频 0:0 来替换视频音频 0:1,而无需重新编码整个文件。

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 

答案1

选项中的第一个数字-map是输入文件索引。因此,如果您使用0两次,则仅使用testing.mp4

尝试一下这个:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

这里,0:v:0选择第一个输入文件的第一个视频流,并1:a:0选择第二个输入文件的第一个音频流。原则上,这:0对您的文件来说不是必需的,但如果有多个视频/音频轨道,那么把它放在那里也无妨。

查看FFmpeg wiki 中关于该-map选项的条目了解更多信息。

相关内容