我工作的一个C图书馆读的标签的信息,从音乐文件。我已经有ID3v2的照顾,但我不能找出如何Ogg文件的结构。

我打开一个.ogg文件在hexeditor我可以找到标记的数据,因为这是所有人的可读性。但是,一切都从一开始就文件的标记数据看起来像垃圾。这是如何的数据编码的?

我不需要任何帮助在实际代码,我只是需要帮助的可视化什么Ogg头看起来像什么编码,它使用所以我,我可以读它。我想用一个非哈克的方法阅读Ogg文件。

我已经看过的 简单的格式, ,其中已有帮助的。

这个简单的文件,我看了大约350个字节之间的"简单的"身份识别特征和人类的可读性的评论部分,没有它是人类的可读我的六编,所以我敢肯定有 的东西 重要的是在那里。

我使用Linux,我没有意迁移到Windows或OS X.所以如果我需要使用glibc唯一的功能转换的编码,我很好。

有帮助吗?

解决方案

如描述该链接提供,下列元数据块之间可能发生的"简单的"标记和VORBIS_COMMENT元数据块。

  • STREAMINFO:这块有有关的信息的整个流,如采样率,道数量的样本总数,等等。它必须本作为第一个元数据的框在流。其它的元数据块可以遵循,并且那个解码器不明白,它将跳过。
  • 应用程序:这块是用于由第三方应用程序。唯一的强制性领域是一个32位识别符。这个标识给予应请求向一个应用程序通过简单的维护者。其余的区块定义的注册申请。访问登记页面,如果你想登记的证件应用程序后手.
  • 填充:这块允许任意数量的填充。内容填充块没有任何意义。这块是用时已知的是,元数据将经过编辑之后编码;用户可以指示的编码器保留一个填充的框足够大的尺寸,以便元数据时加入,它将只复盖的填充(这是相对快速的),而不是插入到正确的位置在现有的文件(通常需要重写整个文件)。
  • SEEKTABLE:这是一个可选择的方框用于存储寻求点。它可能寻求任何特定样品,在一个简单的流而寻求表格,但是拖延是不可预知的因率可能有所不同内广泛流。通过加入寻求指向一个流,这种延迟可以显着减少。每一个寻求点需要18字节,因此,1%的决议内流的增加少于2k。只能有一个SEEKTABLE在流,但该表格可能有任何数目的寻求点。还有一个特殊的'占位'seekpoint这会被忽略的解码器,但它可以用来保护区的空间来寻求点插入。

只是在上面的描述,也有规范的格式每个这些区块。链接也说

所有数字中使用一个简单的流是一个整数;有没有浮点表示。所有数字都是big-endian编码。所有号码都是无符号,除非另有规定。

那么,什么是你失踪了?你说

我想就非哈克的方法阅读Ogg文件。

为什么重新写入一个图书馆做到这时已经存在吗?

其他提示

在奥格文件格式记录 rel="noreferrer">。有一个非常好的图形可视化,你有详细的书面说明请求。

您可能也想看看 libogg 这是一个阅读开源BSD许可库和写入Ogg文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top