【问题标题】:How to convert MP3's to constant bitrate using FFMPEG如何使用 FFMPEG 将 MP3 转换为恒定比特率
【发布时间】:2016-10-12 15:09:01
【问题描述】:

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

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

  • 特里尔·汤普森(Terrill Thompson)尝试pin this down*的道具

【问题讨论】:

  • 可能是 XY 问题。我不相信这是一个好的解决方案。该链接提到它只使用了使用 FFmpeg 的编码器,而后者又使用了 libmp3lame。没有测试其他编码器。您是否尝试直接从 LAME 输出?您是否尝试过基于非 LAME 的 MP3 编码器?
  • 我没有。虽然涵盖我最初问题的帖子在这里(没有真正的解决方案):stackoverflow.com/questions/25468063/… ...那些人是不正确的(imo)认为它就像使用 .ogg 格式一样简单(没有用)。此外,在我的应用程序中,我从世界各地获取 mp3,因此手动编码它们是不可行的。我需要快速对它们进行批量编码并确保它们具有固定的比特率,以便 html5 音频 currentTime 属性准确报告。
  • 而且对于它的价值 LordNeckbeard,如果是这样的话,我很高兴在这方面是错误的。在这一点上,要认真解决这个问题。如果有人可以帮助我了解这一点,他将有一个巨大的脖子,所以我认为我们正在做一些事情......要回答你的问题,我不知道如何知道要使用什么其他编码器和/或是否或不使用 LAME。您是否知道我应该测试一下以尝试确定这一点?
  • 您有可以编码为 MP3 的示例输入文件吗?我有一些想法可以尝试,但只是猜测。
  • 将 MP3 混合到 MP4 容器中是否有帮助?

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


【解决方案1】:

我还遇到了 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 以下。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的回复,雷蒙德。我们正在谈论一个仅出现在长 mp3 文件中的问题,并且我已经能够使用来自不同来源的多个文件进行重现。这家伙去年写了一些关于它的东西:terrillthompson.com/blog/624
    • 哦,我想起来了。如果您使用的是 chrome,则 chrome 如何使用 webaudio 解码 mp3 存在问题。它使用持续时间的估计值,如果估计值很短,则文件被截断。至少可以这么说,这很不幸。
    • 如果您绝对必须在音频播放中准确计时,您会怎么做 Raymond?例如,将文本字幕与音频文件中的单词准确同步。感谢您分享任何见解。
    • 不知道该怎么做。如果您使用 webaudio,您可以将整个文件加载到内存中。 (我假设您已经这样做了,但根据测试页面,这可能不是真的。)然后就不会有同步不良的问题。但是您必须将其全部放入内存中。
    • 这个答案实际上是不正确的。不可能完全正确地把握时机。浏览器采用响应标头中返回的长度和比特率,并猜测在流中的针落位置,通常对服务器上的该资源段发出范围请求。使用 VBR,这种猜测会比通常情况下更加错误。
    猜你喜欢
    • 2017-08-14
    • 2012-06-10
    • 2013-08-25
    • 2012-09-15
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2013-04-12
    相关资源
    最近更新 更多