【问题标题】:How many bytes of Opus payload need to be sent in one RTP packet在一个 RTP 数据包中需要发送多少字节的 Opus 有效负载
【发布时间】:2015-10-07 01:42:35
【问题描述】:

我有包含 OPUS 帧的 Ogg 格式文件。根据我的要求,我需要解析这个文件(帧/数据包),并通过 RTP 将 OPUS 压缩数据发送到远程设备。

我的问题是在一个 RTP 数据包中(假设 48khz 采样率)
1.将发送一个OPUS帧
2. 否则会发送多个 OPUS 帧
3. 或者按照 Ogg 文件格式规范发送一个数据包,可以是一帧、两帧或任意数量的帧将被发送

【问题讨论】:

    标签: rtp ogg opus


    【解决方案1】:

    每个 Opus RTP 数据包都包含only one Opus packet,由Opus specification 定义。这可能在内部包含多个 Opus 帧,但它必须具有正确的标头字节来表示这一点并符合其他规则,因此请确保您的意思与规范中“帧”所做的相同。

    基本上,您希望将 Ogg 文件中的每个 Opus 数据包发送到其自己的 RTP 数据包中。 RTP 有效负载级别没有打包。不要在 .opus Ogg 流的前两个数据包中发送 Id 或 Comment 标头,当然您需要在 RTP 标头前添加适当的标志、时间戳等。

    请参阅 https://git.xiph.org/?p=opus-tools.git;a=blob;f=src/opusrtp.c#l517 以了解此操作的玩具实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 2020-04-30
      相关资源
      最近更新 更多