繁体   English   中英

规范化 avi 文件中的音频

[英]Normalize audio in an avi file

我有一个具有不同级别音频的 avi 文件。 有没有办法使用ffmpeg在需要我的文件的音频的地方适当地减少和增加?

在 ffmpeg 中,您可以使用音量过滤器来更改曲目的音量。 确保您下载了该程序的最新版本。

找出申请的收益

首先,您需要分析最大音量的音频流,看看标准化是否会得到回报:

ffmpeg -i video.avi -af "volumedetect" -f null /dev/null

在 Windows 上用 NUL 替换 /dev/null。 这将输出如下内容:

[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] mean_volume: -16.0 dB
[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] max_volume: -5.0 dB
[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] histogram_0db: 87861

如您所见,我们的最大音量为 -5.0 dB,因此我们可以应用 5 dB 增益。 如果得到 0 dB 的值,则不需要对音频进行归一化。

应用音量过滤器:

现在我们将音量过滤器应用于音频文件。 请注意,应用过滤器意味着我们必须重新编码音频流。 当然,您想要的音频编解码器取决于原始格式。 这里有些例子:

纯音频文件:只需使用您需要的任何编码器对文件进行编码:

ffmpeg -i input.wav -af "volume=5dB" output.mp3

当然,您的选择非常广泛。

AVI 格式:通常有 MP3 音频和视频放在 AVI 容器中:

ffmpeg -i video.avi -af "volume=5dB" -c:v copy -c:a libmp3lame -q:a 2 output.avi

这里我们选择了质量级别 2。值范围从 0 到 9,越低越好。 有关设置质量的更多信息,请查看 MP3 VBR 指南。 例如,您还可以使用 -b:a 192k 设置固定比特率。

MP4 格式:使用 MP4 容器,您通常会找到 AAC 音频。 我们可以使用 ffmpeg 的内置 AAC 编码器。

ffmpeg -i video.mp4 -af "volume=5dB" -c:v copy -c:a aac -strict experimental -b:a 192k output.mp4

在这里您还可以使用其他 AAC 编码器。 其中一些也支持 VBR。 有关一些提示,请参阅此答案和 AAC 编码指南。

在上面的示例中,将使用 -c:v copy 复制视频流。 如果输入文件中有字幕或多个视频流,请在输出文件名前使用选项 -map 0。

作者的信息是: 超级用户中的Jon Skarpeteig

您可以为此使用我的ffmpeg-normalize脚本。

首先,安装最新版本的 ffmpeg。 然后,通过pip install ffmpeg_normalize ,然后在 AVI 文件上运行它:

ffmpeg-normalize input.avi -o output.mkv -c:a aac -b:a 192k

在这里,我们选择使用 AAC 以 192 kBit/s 的速度重新编码音频,并将视频流复制到输出。 这将执行EBU R128 归一化,但简单的峰值/RMS 归一化也是可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM