ffmpeg 命令的任何部分都可以使用表达式吗?

Can any part of an ffmpeg command use expressions?

我仍在学习表达式如何与 ffmpeg 一起工作,命令的任何部分是否可以使用表达式。

例如,我有这个命令:

ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers='FL 45|FR 45|BL 45|BR 45'" output.mp3

(文件CubFritz1.sofa可以顺便下载here)

这基本上应用了 sofalizer 效果并指定应听到/来自音频左侧(45 度)的每个通道。

这按预期工作。

但是,我似乎根本无法在命令中使用表达式。

例如这个:

ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers='FL if(0, 45, 45)'|'FR if(0, 45, 45)'|'BL if(0, 45, 45)'|'BR if(0, 45, 45)'" output.mp3

哪个做一个if(0, 45, 45)作为测试,所以不管结果应该是45吧?

然而,当我运行这个命令时,它似乎不再起作用了,这意味着声音不完全来自左侧。

我什至尝试在命令中更改单个 ' 的位置,但没有成功:

ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers=FL 'if(0, 45, 45)'|FR 'if(0, 45, 45)'|BL 'if(0, 45, 45)'|BR 'if(0, 45, 45)'" output.mp3

我的问题是,让表达式在 ffmpeg 命令中起作用的规则是什么?

如何重写命令以使 if(0, 45, 45) 起作用?

我认为 safalizer 选项不支持表达式