![](/img/trans.png)
[英]How to convert video file(.mp4) format into binary format in android?
[英]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.