在没有Ogg的情况下使用Vorbis?

时间:2012-06-05 02:00:26

标签: ogg oggvorbis vorbis matroska

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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