我有这个从 Vorbis 获取 Ogg Stream 的初始标头信息的示例:
ogg_packet header;
ogg_packet header_comm;
ogg_packet header_code;
vorbis_analysis_headerout(&vd,&vc,&header,&header_comm,&header_code);
如何使用 libopus 从 Opus 获取此标头信息?这里有一些信息,但我不知道如何使用它。
Ogg Opus 只有两个头包:ID 头和注释头。有关其内容的详细信息,请参阅规范。
如果您正在使用opusfile库读取Ogg Opus 文件,它会为您处理数据包(包括标头数据包)。您链接到的各种函数用于从已处理的标头中获取信息。
如果您正在编写Ogg Opus 文件,您可以使用libopusenc库,它会为您编写标题。从 0.2 版开始,opus-tools包中的 opusenc 程序使用 libopusenc。如果出于某种原因您想直接使用 ogg 库自己格式化和编写数据包,您可以查看旧的 0.1.10 版本的 opusenc,当它自己执行此操作时;查找opusenc.c/* Write header */
中的注释和格式化 ID 标头的调用。opus_header_to_packet()