【发布时间】:2017-08-30 21:46:03
【问题描述】:
我正在为我的工作编写一个 ffmpeg 链流程。目的是规范化/压缩大量音频文件(mp3)。 它是在 Python 中完成的,关键部分是这一行:
ffmpeg -y -i "Input.mp3" -codec:a libmp3lame -b:a 96k -af acompressor=threshold=-15dB:ratio=5:attack=0.01:release=1000:knee=2,dynaudnorm=g=3:m=2:p=0.95 "Output.mp3"
python 脚本是完整的并且可以工作,但是音频(录音)的性质非常不同,所以我不能对所有这些都使用相同的参数。
我对 ffmpeg 过滤器 astats 的值进行了一些试验,发现 波峰因数(峰值与 RMS 电平的标准比)为以编程方式获得更好的参数提供了很好的参考。
事实上,我看到一个具有良好动态范围声音和平滑形状的录音,获得的波峰值在 9-15 左右(compress/normlz 参数会有点保守)。但是波峰在 22-30 左右的音频需要更积极的处理。 (全部凭经验)
有人可以澄清峰值是如何计算的吗?考虑了哪些峰? (为什么平坦因子总是 0?) 或者,如果有人知道如何获得代表声音“平滑度”的值也会很好。
感谢您的想法。
【问题讨论】:
标签: audio ffmpeg statistics compression