我选择 ecasound 作为混合一组文件并应用简单幅度压缩的工具。操作顺序应该是:
combine inputs > apply compression > save to output file
我使用的命令是:
ecasound \
-a:1 -i input1.wav -ea:100 \
-a:2 -i input2.wav -ea:100 \
-a:3 -i input3.wav -ea:100 \
-a:4 -i input4.wav -ea:100 \
-a:all -o loop,1 \
-a:loop_chain -i loop,1 -ec:10,70\
-a:loop_chain -o output.wav
它工作得很好,可以让我显着减少剪辑的机会。
问题是我的开发机器(iMac)和服务器(linux 机器)上都安装了 ecasound。在 iMac 上,我通过 tarball 安装了 ecasound v2.9.1,在 Linux 机器上,我尝试通过 git、tarball 和 apt-get 安装了相同的版本。在所有三种情况下,输出 WRT 与 iMac 上的输出不匹配。
在 iMac 上,我得到了这个结果(所需的结果):
在 linux 机器上,我得到:
请注意,linux 版本直接输出到 mp3,而 mac 输出到 WAV,但我也尝试直接在 linux 上使用 WAV,但没有任何变化。看起来 Linux 机器上的文件组合(混合)执行了某种自动规范化。文档并未专门提及标准化,但在某些论坛和邮件列表中,它看起来像是一个功能。无论如何,这并不能解释不匹配的情况,看起来更像是配置问题,即使在这两种情况下我都没有明确更改和配置,也没有在安装时或之后进行更改。
这两种情况的 ecasound 调试输出也没有显示出任何差异。
知道如何让 Linux 版本像 Mac 一样工作吗?
注 1:即使 ecasound 手册页说命令 -ec 需要 0 到 1 之间的值,我实际上发现该值应该在 0 到 100 之间。
注 2:我尝试使用 -eca 压缩器,但我在那里遇到其他类型的问题,我真的想只使用 -ec。
答案1
看起来“-z:mixmode,sum”使用了不同的默认值(与 -z:mixmode,avg 相比,请参阅 ecasound(1) 手册页)。这可以解释您所看到的差异。