![](/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.