首页 > 解决方案 > 如何使用 ffmpeg 将多个音频文件(过滤一个)添加到视频中?

问题描述

我正在尝试使视频静音并向其添加两个音频文件。一个是语音旁白,第二个是将音乐过滤到其通常音量的 0.5 倍。

我看到我收到一条错误消息,指出我无法将 -filter 与 -c:a 结合使用,但删除 -c:a 并没有帮助。添加音频没问题,但过滤不起作用。

ffmpeg -ss $START -i "$VIDEO" -i "$AUDIO1" -i "$AUDIO2" -filter:a "volume=1.5" -t $AUDIOLENGTH -map 0:v -map 1:0 -map 2:0 -c:v copy -c:a aac -b:a 256k -shortest "./Output/${AUDIONAME}/${AUDIONAME}.mp4" -y

我的这段代码似乎只合并了一个音频文件。最重要的是,如果我将它编辑为只添加一个音频文件,-filter 开关似乎不起作用。求救,越来越严重了!!

标签: ffmpeggit-bash

解决方案


当您需要以某种组合过滤多个输入时,必须使用过滤器图,通过 -filter_complex 调用。在此特定用途中,可以使用混合过滤器。

ffmpeg -ss $START -i "$VIDEO" -i "$AUDIO1" -i "$AUDIO2" -filter_complex "[1][2]amix=inputs=2:weights='2 1'[a]" -t $AUDIOLENGTH -map 0:v -map '[a]' -c:v copy -c:a aac -b:a 256k "./Output/${AUDIONAME}/${AUDIONAME}.mp4" -y

(如果您提供输出持续时间-t, -shortest 可以删除)


推荐阅读