我发现用可变比特率编码的MP3会导致currentTime属性为reported incorrectly,尤其是在擦洗时。这对我的应用程序造成了严重破坏,并且一直是调试的噩梦。
我相信我需要将所有MP3转换为恒定比特率。 FFMPEG(或其他东西)可以帮助我有效地做到这一点吗?
答案 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重新采样到上下文采样率。