使用FFmpeg或类似方法将视频中的音频标准化为EBU R128标准

时间:2019-11-14 15:44:42

标签: audio video ffmpeg

这是我第一次在堆栈溢出时问这个问题。

我为此感到困惑,并为此感到非常挣扎。我正在尝试将我的MXF视频文件的音频设置为EBU r128标准。

这意味着它必须为-23,且不高于0.5。

我当前的过程

Watch_folder>编码为MXF> Output_folder

我需要确保它进入输出文件夹时,那些MXF文件符合EBU R128 Loudness。

到目前为止我所做的:

FFMPEG:

ffmpeg -i input.mxf -af loudnorm=I=-23:LRA=7:tp=-2:print_format=json -f null -

得到结果:

集成输入:-15.1 LUFS 输入真实峰值:+0.0 dBTP 输入LRA:17.1 LU 输入阈值:-26.2 LUFS

集成输出:-17.1 LUFS 输出真实峰值:-1.5 dBTP 输出LRA:5.3 LU 输出阈值:-27.6 LUFS

归一化类型:动态 目标偏移:+1.1 LU

然后我做了

ffmpeg -i input.mxf -af loudnorm=I=-23:LRA=7:tp=-2:measured_I=-15.1:measured_LRA=17.1:measured_tp=0:measured_thresh=-27.6:offset=1.1 -ar 48k -y output.mxf

但是,当我通过软件Eff放置它时,它表示它不符合EBU。

*编辑: 这也降低了质量。例如;我的6 Gb变为250 MB,您可以分辨出降级的质量

ffmpeg-normalize

我做了以下

ffmpeg-normalize input.mxf -c:a pcm_s32le -ar 48000 -o output.mxf 但这给了我错误。

如果我在没有输出文件类型的情况下执行此操作,则会得到一个对我不起作用的mkv。我需要它是MXF。

1 个答案:

答案 0 :(得分:1)

好的,这里有几个问题。

首先,如果文件的测量值为-26.2 LUFS,则需要增加3.2 dB才能使其达到-23。但是您不能这样做,因为您的真实峰值太高(您将超过满量程)。您需要压缩(动态音频压缩,而不是文件/速率压缩)音频或至少使用限制器来实现此目的。 良好的R128音轨应该正确混合,而不是仅通过规范化器进行混音,否则您可能会失去标准音质或不想要的音效的风险。

如果您无权访问音频编辑软件或可以为您执行此操作的人,则FFMPEG确实包含一个音频限制器,它将为您提供足够的空间将级别提高到-23 LUFS。 您可以使用以下方法做到这一点:

-filter_complex alimiter=level_in=1:level_out=1:limit=1.5:attack=7:release=100:level=disabled

但是,调整好限制器取决于视频文件的内容(音乐,语音等),这是值得花费一些时间的事情。更改攻击并释放值,直到获得所需的结果。

其次,FFMPEG产生了质量较低的较小文件的原因是,您没有在视频部分中指定任何内容。 FFMPEG对视频的默认操作(通常)是编码为h264,因此无论您的编解码器是什么(我假设您使用的是MXF包装器,我都假设为DNxHD)。 FFMPEG将复制视频流,但是如果您包含选项-c:v copy(基本上就是复制视频编解码器),则将其保留。

尝试过这些结果后发布结果!!