HTML5 音频浏览器无法解码使用 IMA ADPCM 编码的 wav 文件

HTML5 audio Browsers unable to decode wav file encoded with IMA ADPCM

首先,我很抱歉,因为我基本上是音频工作的新手。

我目前使用的 Web 应用程序使用 asp.net/vb.net 设计,允许用户使用 Nanogong 小程序 (http://nanogong.ust.hk/doc_faq.html) 录制和播放音频。我们正在转向 HTML5 音频,因为对 NPAPI 插件的支持已从大多数浏览器中删除(Firefox 除外,直到今年年底)。

Nanogong 使用 4 位 IMA ADPCM 编码 wav 文件。我能够使用 sox 将 Nanogong wav 文件转换为 16 位 PCM,然后使用该 wav 文件使用 oggenc2 创建一个 ogg 版本,并使用 lame 创建一个 mp3 版本。我们需要 Firefox 和 Chrome 的 ogg 文件,以及 Safari 的 mp3。

我想了解的是为什么浏览器好像不能播放4-bit IMA ADPCM格式?他们只能播放 8 位或 16 位的 PCM 格式吗?在Firefox中,firebug表示无法解码IMA ADPCM wav文件; Chrome 和 Opera 在开发者控制台中没有提及任何内容,但我猜它与 Firefox 一样,因为该文件无法在这些浏览器中播放。

我试过在网上搜索,但似乎没有很多关于 HTML5 音频的信息,或者其中大部分似乎是较旧的信息。我还看到更多关于从 PCM 转换为 ADPCM 的文章。

任何指导或资源将不胜感激。谢谢!!

浏览器供应商不需要支持任何特定的音频格式。存在许可等问题,尽管在这种情况下可能不那么相关,这使得供应商仅支持最基本的(例如未压缩的 PCM)和常见格式(MP3、OGG 等),并且在某些情况下会依赖于底层系统解码音频(或视频)。相对于增益的代码库大小可能是另一个因素。

4 位 IMA ADPCM 从今天起属于 "not so common" 类别,这可能是浏览器不支持的原因。

虽然可以通过使用音频 API(消除 IE)和二进制 parsing/decoding 手动支持格式来解决这个问题。我这样做是我的 audio-reader-js 库,但目前我不支持 IMA 编码数据。它也可以用作实现对此的支持的基础。