1

我想知道为什么 Vorbis 需要任何容器?我知道您可以将 Vorbis 放在 Ogg 容器或 Matroska 容器中,但如果我不打算将它与任何视频或任何其他多媒体捆绑在一起,为什么 Vorbis 数据不能单独存在于自己的文件中?

有没有人有这样做的经验?我在搜索之前用谷歌搜索,我只在 oggvorbis 邮件列表中找到了一个没有详细信息的提及。

4

1 回答 1

1

这是完全可能的。您无需事先知道任何 Vorbis 数据包的长度(无论它们是标头还是音频)即可对其进行解码。如果没有 Ogg 包装器(或替代包装器),您将错过一些事情,但它们可能对您的应用程序并不重要:

  • 页面校验和 - 如果您从磁盘或其他相当可靠的来源读取,则不太重要
  • 页面粒度/最后一个样本位置 - 有助于提高搜索性能,并用于指定

但是,您可以通过以下方式轻松地从 ogg 文件(假设其中只有一个 Vorbis 流)生成纯 Vorbis 字节流:

  1. 跳过 26 个字节
  2. n= 读取 1 个字节
  3. countOfBytesToRead= 下一个n字节的总和
  4. 将字节读countOfBytesToRead入您的 Vorbis 字节流
  5. 重复1-4直到Ogg文件用完
于 2013-01-18T15:11:55.450 回答