我对 RTP 很陌生,有人可以解释一下 CSRC 和 SSRC 吗?
从http://www.rfc-editor.org/rfc/rfc3550.txt,它说的是: SSRC 字段标识同步源。这是否意味着,在网络中可能有许多发送者正在为 RTP(多播网络)做出贡献并识别数据包来自哪个源?
CSRC : Contributing source (CSRC): RTP 数据包流的来源,它对 RTP 混合器产生的组合流做出了贡献(见下文)。不清楚,不知道,不懂。
有人可以举例解释吗?谢谢
我对 RTP 很陌生,有人可以解释一下 CSRC 和 SSRC 吗?
从http://www.rfc-editor.org/rfc/rfc3550.txt,它说的是: SSRC 字段标识同步源。这是否意味着,在网络中可能有许多发送者正在为 RTP(多播网络)做出贡献并识别数据包来自哪个源?
CSRC : Contributing source (CSRC): RTP 数据包流的来源,它对 RTP 混合器产生的组合流做出了贡献(见下文)。不清楚,不知道,不懂。
有人可以举例解释吗?谢谢
取自链接:
SSRC标识同步源。该值是随机选择的,目的是在同一 RTP 会话中没有两个同步源将具有相同的 SSRC。尽管多个源选择相同标识符的概率很低,但所有 RTP 实现都必须准备好检测和解决冲突。如果一个源改变了它的源传输地址,它也必须选择一个新的 SSRC 以避免被解释为一个循环源。
CSRC一个由 0 到 15 个 CSRC 元素组成的数组,用于标识此数据包中包含的有效载荷的贡献源。标识符的数量由 CC 字段给出。如果有超过 15 个贡献来源,则只能识别 15 个。CSRC 标识符由混合器插入,使用贡献源的 SSRC 标识符。例如,对于音频数据包,所有源的 SSRC 标识符都被列出,这些标识符混合在一起创建一个数据包,从而允许在接收器处进行正确的讲话者指示。
老实说,我从未见过任何人真正以任何有意义的方式使用 SSRC 或 CSRC。在我处理过的所有代码中,我们只是在 SSRC 中生成一个随机数,而从不费心填写 CSRC。
我猜 SSRC 在跟踪和/或检测循环音频路径方面可能很有用。
我猜 CSRC 对于从会议服务器接收音频的 sip 端点可能很有用,其中多个音频源混合在一起,如上面的引用所示。正如我所说,在我处理过的会议服务器代码中,我们不打扰。
关于您的问题“这是否意味着,在网络中可能有许多发送者为 RTP(多播网络)做出贡献并确定数据包来自哪个来源??”
这不是特别正确,因为当有很多源时,RTP 混合器会混合视频/音频,在这种情况下,SSRC 是 RTP 混合器 SSRC,它不是 RTP 数据包发送方的源,以便了解您需要的源查看具有由唯一 SSRC 标识的这些源的 CSRC 数组,数组的大小也由标题字段 CC:count CSRC 给出。
如果音频/视频未合并(单播),则 SSRC 属于此视频/音频的发送方,且 CSRC 未填写。
有用的介绍:http: //voip.netlab.uky.edu/~fei/teaching/cs671/slides/rtp.pdf
根据RFC 8108 第 4 节,以下是规范:
如果使用 RTP 混合器,某些 SSRC 可能仅在 RTP 数据包的贡献源 (CSRC) 列表和 RTCP 中可见,并且可能不会直接作为 RTP 数据包的 SSRC 出现。