使用没有Ogg的Vorbis



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

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

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

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

但是,您可以通过以下方式从ogg文件(假设其中只有一个Vorbis流)非常简单地制作纯Vorbis字节流:

  1. 跳过 26 个字节
  2. n = 读取 1 字节
  3. countOfBytesToRead = 接下来的 n 字节的总和
  4. countOfBytesToRead字节读入 Vorbis 字节流
  5. 重复 1-4,直到 Ogg 文件用尽

相关内容

  • 没有找到相关文章

最新更新