使用 FFMPEG 为视频添加配乐

使用 FFMPEG 为视频添加配乐

简而言之,我想将视频中的音频与音乐源(mp3,aac......)合并。

我有一个带声音的视频文件。我想给它添加配乐,这样输出文件的音频就有语音和音乐了。

我寻找了几种解决方案,但只找到了如何在 audio1 和 audio2 之间添加另一个音轨作为选择的方法。这是我找到的一个示例:

ffmpeg -i input.mp4 -i music.mp3 -map 0 -map 1 \
   -vcodec copy -acodec copy merged.mp4

另外,我希望音乐适合视频长度(我认为该-shortest选项可以实现这一点,请确认)。

非常感谢 !

答案1

两个立体声输入至一个立体声输出

您可以使用amerge音频过滤器将两个音频流合并为一个流,然后pan音频过滤器将得到的 4 个通道合并为 2 个通道(立体声)。假设您的两个输入都是立体声:

ffmpeg -i input.mp4 -i music.mp3 -codec:v copy -codec:a aac -b:a 192k \
-strict experimental -filter_complex "amerge,pan=stereo:c0<c0+c2:c1<c1+c3" \
-shortest output.mp4
  • 因为你只想操纵音频-codec:v copy用于流复制视频。

  • -strict experimental-strict -2需要使用原生 FFmpeg AAC 编码器。另请参阅FFmpeg 和 AAC 编码指南了解其他选项和示例。

  • pan 语法c0<c0+c2:c1<c1+c3可以翻译为“对于输出通道c0(左通道),将两个输入的左通道(输入通道c0c2)合并,对于输出通道c1(右通道),将两个输入的右通道(输入通道c1c3)合并”。

  • -shortest将使输出持续时间与最短输入的持续时间相同。

两个单声道输入至一个立体声输出

这比较简单,但只需将每个输入的单声道复制到输出的每个通道:

ffmpeg -i input.mp4 -i music.mp3 -codec:v copy -codec:a aac -b:a 192k \
-strict experimental -ac 2 -shortest output.mp4

另请参阅

相关内容