ffmpeg:多个音频过滤器的正确语法

ffmpeg:多个音频过滤器的正确语法

我想要应用三个音频过滤器:pan --> dynaudnorm --> volume。

问题在于中间过滤器(dynaudnorm)被忽略了。

为了进行测试,我尝试重新排列过滤器,结果无论哪个过滤器位于中间,都会被忽略。我还尝试了“标签”语法——即 [in]filter=args[out]——但出现了同样的问题:中间的过滤器被跳过。

我错过了什么?

ffmpeg -i "infile.mkv" -c:a mp3 -filter_complex "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE[b], dynaudnorm=f=75:g=7; volume=0.5[2smash]" -map 0 -map [2smash] -metadata:s:a:[2smash] title="Low Dyn Range" -c:v copy "filtertest.mkv"

答案1

对于应用于单个音频流的一系列过滤器,使用简单的过滤器链:

ffmpeg -i "infile.mkv" -filter:a:1 "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE, dynaudnorm=f=75:g=7,volume=0.5" -map 0 -map 0:a:0 -c:v copy -c:a mp3 -metadata:s:a:1 title="Low Dyn Range" "filtertest.mkv"

我假设您的输入有一个音频流。

相关内容