如何在android中规范视频(mp4)文件



我想实现视频音频的特性规范化。我做了一些R&D,但没有找到任何合适的解决方案。

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

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

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

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

首先,我们需要分析音频流的最大音量,看看归一化是否会有回报:

val complexCommand = arrayOf("-i",videoPath,"-af","volumedetect","-f","null","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命令规范化.mp4文件。

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

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

最新更新