繁体   English   中英

如何规范化 android 中的 Video(mp4) 文件?

[英]How to Normalize the Video(mp4) file in android?

我想实现视频音频的特征标准化。 我做了一些研发,但没有找到任何合适的解决方案。

我还有一个疑问,我是否必须从视频中获取音频,然后对其进行规范化,然后将音频合并到视频中(这可能是一项耗时的任务),还是我可以直接规范化视频文件?

或者,如果有任何特定的 FFmpeg 命令,那么我很乐意使用它。

我为上述问题找到了一种解决方案。

我们可以使用 FFmpeg 命令来规范化视频中的音频。 但在此之前,我们需要找出应用的增益

首先,我们需要分析音频 stream 以获得最大音量,看看标准化是否会得到回报:

val complexCommand = arrayOf("-i",videoPath,"-af","volumedetect","-f","null","null")

这将 output 类似于以下内容:

[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 命令规范化 .mp4 文件。

val complexCommand = arrayOf(
        "-i",
        originalVideoPath,
        "-af",
        "volume= 5.0dB",
        "-c:v", "copy",
        "-c:a",
        "aac",
        "-strict",
        "experimental",
        "-b:a",
        "128k",
        destinationPath
    )

128k是我们需要设置的视频的音频比特率。 它可以根据视频而有所不同。

暂无
暂无

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

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