audio - 使用 FFmpeg 或类似软件将视频中的音频标准化为 EBU R128 标准

标签 audio video ffmpeg

这是我第一次在这里提出堆栈溢出问题。

我被困住了,真的很挣扎。我正在尝试使我的一些 MXF 视频文件成为其音频的 EBU r128 标准。

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

我现在的流程

Watch_folder > 编码为 MXF > Output_folder

当涉及到输出文件夹时,我需要确保这些 MXF 文件符合 EBU R128 响度。

到目前为止我做了什么:

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 标准化

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

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

最佳答案

好的,这里有几个问题。

首先,如果您的文件是在 -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,因此无论您的编解码器是什么(我假设 DNxHD,因为您使用的是 MXF 包装器)都需要指定。如果您包含选项 -c:v copy (这意味着复制视频编解码器,基本上),FFMPEG 将复制视频流并且不理会它。

一旦你尝试了这些,就发布你的结果......!

关于audio - 使用 FFmpeg 或类似软件将视频中的音频标准化为 EBU R128 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860674/

相关文章:

video - 亚马逊弹性转码器与 FFMPEG

c#和ffpmeg命令行问题

ffmpeg - 使用 ffmpeg 将视频从 30fps 重新编码到 60fps

ios - Sharepoint 2010,HTML5 视频无法在 iPad 上运行

ios - 在视频 iOS 上添加标签

video - FFMPEG 编码视频文件所需的时间

c++ - 如何使用 WinRT 在 Windows 8 Metro 应用程序中播放声音文件?

ios - 如何检测iPhone是否处于静音模式

android - 获取Android音频文件的持续时间

iphone - 音频处理期间的标签更新