我有一个从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获取此标头信息?
有一些信息HERE,但是我不知道如何使用它。

最佳答案

Ogg Opus只有两个标头数据包:ID标头和注释标头。有关其内容的详细信息,请参见the specification

如果您正在使用opusfile库读取Ogg Opus文件,它将为您处理数据包(包括标头数据包)。链接到的各种功能用于从已处理的标头中获取信息。

如果要编写Ogg Opus文件,则可以使用libopusenc库,它将为您编写标头。从0.2版开始,opus-tools软件包中的opusenc程序使用libopusenc。如果出于某种原因,您想直接使用ogg库自行格式化和编写数据包,则可以查看一下opusenc的旧版0.1.10,它本身就是这样做的。在opusenc.c中查找注释/* Write header */,并调用opus_header_to_packet()格式化ID标头。

08-04 21:17