我对RTP很新,有人可以解释一下CSRC和SSRC吗?
来自http://www.rfc-editor.org/rfc/rfc3550.txt, 它的含义是:SSRC字段标识同步源。这是否意味着,在网络中可能有许多发送者正在为RTP(多播网络)做出贡献并确定数据包来自哪个来源?
CSRC:贡献源(CSRC):RTP数据包流的来源,它对RTP混频器产生的组合流做出了贡献(见下文)。不明白。
有人可以用例子说明吗? 感谢
答案 0 :(得分:12)
取自link:
SSRC 标识同步源。该值是随机选择的,其意图是没有两个同步源 相同的RTP会话将具有相同的SSRC。虽然概率很大 选择相同标识符的多个源是低的,所有RTP 实现必须准备好检测和解决冲突。如果 一个源更改其源传输地址,它还必须选择一个 新的SSRC,以避免被解释为循环源。
CSRC 一个0到15个CSRC元素的数组,用于标识此数据包中包含的有效负载的贡献源。该 标识符的数量由CC字段给出。如果有更多 15个贡献来源,只有15个可以确定。 CSRC标识符 由混合器插入,使用SSRC的贡献标识符 源。例如,对于音频数据包,所有的SSRC标识符 列出混合在一起创建数据包的源, 允许在接收器上正确的说话者指示。
说实话,我从未见过有人以任何有意义的方式使用SSRC或CSRC。在我处理过的所有代码中,我们只是在SSRC中生成一个随机数,并且从不打扰填写CSRC。
我猜想SSRC在跟踪和/或检测循环音频路径时可能很有用。
我猜CSRC对于从会议服务器接收音频的SIP端点可能很有用,其中多个音频源混合在一起,如上面引用中所示。正如我所说,在我处理的会议服务器代码中,我们不打扰。
答案 1 :(得分:2)
关于您的问题“这是否意味着,在网络中可能有许多发件人正在为RTP(多播网络)做出贡献并确定数据包来自哪个来源?”
具体情况并非如此,因为当有许多信号源时,视频/音频由RTP混音器混合而在这种情况下SSRC是RTP混音器SSRC,它不是RTP数据包发送方的来源,以便知道您需要查看CSRC阵列的源,这些阵列具有由唯一SSRC标识的这些源,阵列的大小也由头字段CC:count CSRC给出。
如果音频/视频未合并(单播),则SSRC属于此视频/音频的发送者且CSRC未填写。
有用的演示: http://voip.netlab.uky.edu/~fei/teaching/cs671/slides/rtp.pdf
答案 2 :(得分:0)
同步源标识符(32位)区别地区分数据流的源。同一RTP会话中的同步源将是唯一的。
2.CSRC:
贡献源ID(每个32位)汇总了从多个源生成的流的贡献源。
答案 3 :(得分:0)
根据RFC 8108 section 4,以下是规范:
如果使用RTP混合器,则某些SSRC可能仅在RTP数据包的贡献源(CSRC)列表和RTCP中可见,而可能不会直接显示为RTP数据包的SSRC。