如何使用FFMPEG将MP3转换为恒定比特率

时间:2016-06-11 21:39:03

标签: audio ffmpeg mp3 html5-audio web-audio

我发现用可变比特率编码的MP3会导致currentTime属性为reported incorrectly,尤其是在擦洗时。这对我的应用程序造成了严重破坏,并且一直是调试的噩梦。

我相信我需要将所有MP3转换为恒定比特率。 FFMPEG(或其他东西)可以帮助我有效地做到这一点吗?

2 个答案:

答案 0 :(得分:0)

我还遇到了HTML5对于大型mp3不准确的问题。由于音频质量不是大问题,因此我将音频转换为恒定的8kbps比特率,8k的采样率,单声道,这解决了我的问题。

您可以使用Audacity(导出>保存到mp3>恒定比特率)转换为几个文件的恒定比特率。

或者,使用FFMPEG

ffmpeg -i input.wav -codec:a libmp3lame -b:a 8k output.mp3

如果您还想降低为单声道,并且采样率为8k:

ffmpeg -i input.wav -codec:a libmp3lame -b:a 8k -ac 1 -ar 8000 output.mp3

使用第二秒将一个小时的音频压缩到5MB以下。

答案 1 :(得分:-1)

还有其他事情正在发生。 currentTime不应受到使用可变比特率MP3这一事实的影响。

也许上下文sampleRate与MP3的采样率不一样?这会弄乱音频样本的时间,因为WebAudio会将MP3重新采样到上下文采样率。