规范化avi文件中的音频

zin*_*non 6 audio ffmpeg normalization

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

小智 16

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

找出要应用的收益

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

ffmpeg -i video.avi -af "volumedetect" -f null /dev/null
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

如您所见,我们的最大音量为-5.0 dB,因此我们可以应用5 dB增益.如果您获得0 dB的值,则无需标准化音频.

应用音量过滤器:

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

普通音频文件:只需使用您需要的编码器对文件进行编码:

ffmpeg -i input.wav -af "volume=5dB" output.mp3
Run Code Online (Sandbox Code Playgroud)

当然,你的选择非常广泛.

AVI格式:通常带有AVI容器中带有视频的MP3音频:

ffmpeg -i video.avi -af "volume=5dB" -c:v copy -c:a libmp3lame -q:a 2 output.avi
Run Code Online (Sandbox Code Playgroud)

在这里,我们选择质量等级2.数值范围从0-9到更低意味着更好.有关设置质量的更多信息,请查看MP3 VBR指南.例如,您也可以使用-b: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
Run Code Online (Sandbox Code Playgroud)

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

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

笔者的信息是:乔恩Skarpeteig超级用户

  • 使用`-vn`运行`ffmpeg -i video.avi -af"volumedetect"-f null/dev/null`会快得多:``ffmpeg -i video.avi -vn -af"volumedetect"-f null/dev/null`因为`-vn`将完全跳过视频流而只是处理音频. (2认同)