【问题标题】:Ogg metadata - Vorbis Comment endOgg 元数据 - Vorbis 评论结束
【发布时间】:2014-07-25 21:46:03
【问题描述】:

我想实现一个类来读取 vorbis cmets。我知道 field 将以 field name 开头,然后是 等号value。但它是如何结束的?文档让我认为分号将结束该字段,但我使用十六进制编辑器检查了一个 ogg 文件,但我看不到任何文件。

这就是我认为它应该在文件中的样子:

TITLE=MY SUPER TITLE; 

字段名title,后跟等号,然后值为MY SUPER TITLE .最后以 分号 结束该字段。

但在我的文件中,字段看起来像这样:

TITLE=MY SUPER TITLE....

几乎和上面一样,但是没有分号。 . 是无法显示的字符。我想好吧,似乎这些点代表一个值,会说“这是该字段的结尾!”但它们几乎总是不同的。我注意到总是正好有 4 个点。第一个点始终具有不同的值。其他免费的通常值为 0。但并非总是...

我现在的问题是,字段是如何结束的?如何阅读此评论?

另外,是的,我知道有库,我应该使用它们,而不是一遍又一遍地重新发明轮子。我稍后会使用库,但首先我想知道如何自己做。仅用于教育目的。

【问题讨论】:

    标签: metadata ogg vorbis


    【解决方案1】:

    每个字段前面都有一个 little-endian 32 位整数,表示要读取的字节数。然后通过 UTF8 将字节转换为字符串。

    详情请参阅NVorbis' implementation (LoadComments(...))。

    【讨论】:

    • 是否有可靠的方法来查找 cmets 字段的开头?文档在这一点上有点含糊。
    猜你喜欢
    • 2014-12-28
    • 2011-04-28
    • 2011-09-12
    • 2011-06-12
    • 2011-05-19
    • 2013-12-14
    • 2011-02-08
    • 2015-11-24
    • 2015-05-01
    相关资源
    最近更新 更多