gpt4 book ai didi

voip - RTP包合并

转载 作者:行者123 更新时间:2023-12-04 06:48:34 37 4
gpt4 key购买 nike

我有一堆 RTP 数据包,我想将它们重新组合成音频流。对于每个数据包,我都有序列号、SSRC、时间戳和一个表示数据本身的字节数组。

目前,我通过它们的 SSRC 获取每个数据包子集,然后按时间戳对它们进行排序,并按该顺序组合字节数组。之后,我混合字节数组。生成的音频数据听起来很棒(很好,我的意思是一切都及时),但我担心这是由于没有太多的数据包丢失。

所以,有几个问题...

  • 对于丢失的数据包,丢失的序列号显示我需要添加一些空音频的位置。我相信序列号经常“环绕”,所以我需要使用时间戳将它们分解为子集。然后我可以在这些子集中查找缺失的序列号并根据需要添加。这听起来像是正确的做法吗?
  • 我还没有完全弄清楚时间戳还有什么好处。由于我正在记录已经存在的数据包并填写丢失的数据包,也许我不需要太担心这个?
  • 最佳答案

    1) 避免在算法中使用时间戳。如果您从不良客户端(不正确的时间戳)接收流,您的算法将失败。并且“时间戳增量”值随编解码器类型而变化。在这种情况下,您可能需要针对不同编解码器的不同子集。序列号没有限制。序号单调递增。使用序列号,您可以轻松跟踪丢失的数据包。

    2)时间戳用于音频和视频之间的同步。主要用于口型同步。建立音频和视频时间戳之间的关系以实现同步。在您的情况下,它是唯一的音频,因此您可以避免使用时间戳。

    编辑:根据 RFC 3389(舒适噪声的实时传输协议(protocol) (RTP) 有效载荷 (CN))

    RTP allows discontinuous transmission (silence suppression) on any audio payload format. The receiver can detect silence suppression on the first packet received after the silence by observing that the RTP timestamp is not contiguous with the end of the interval covered by the previous packet even though the RTP sequence number has incremented only by one. The RTP marker bit is also normally set on such a packet.

    关于voip - RTP包合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442476/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com