我有包含OPUS帧的Ogg格式文件。根据我的要求,我需要解析这个文件(帧/包),并通过RTP将OPUS压缩数据发送到远程设备。
我的问题是在一个RTP数据包中(假设48khz采样率)
1.将发送一个OPUS帧
2.或者将发送多个OPUS帧
3.或者根据Ogg文件格式规范的一个数据包,可以是一帧,2帧或任意数量的帧将被发送
答案 0 :(得分:3)
每个Opus RTP数据包包含only one Opus packet,由Opus specification定义。这可能在内部包含多个Opus框架,但它必须具有正确的标头字节才能发出信号并符合其他规则,因此请确保您的意思与规范相同,框架"。
基本上,您希望将每个Opus数据包从Ogg文件中发送到自己的RTP数据包中。在RTP有效载荷级别没有打包。不要在.opus Ogg流的前两个数据包中发送Id或Comment标头,当然,您需要在RTP标头前加上适当的标志,时间戳等。
有关此玩具的实施,请参阅https://git.xiph.org/?p=opus-tools.git;a=blob;f=src/opusrtp.c#l517。