关于 RTP/RTCP 协议的疑问

Doubts regarding RTP/RTCP protocol

关于 RTP / RTCP protocol seems very confusing to me. I cannot find any state transition diagram for this protocol like this 的 RFC 教程。 它没有清除 NTP 和 RTP 时间戳之间的区别。它说它对于计算往返时间很有用。不能单独用RTP时间戳计算吗?

当且仅当它最近发送了一个 RTP 数据包时,源才会发送 SR 报告,否则它是一个 RR 数据包。实际判断发送方最近是否发送过数据包的时间间隔是多少?

调音台具体是做什么的?它是否需要来自多个来源的所有 RTP 数据包,然后在应用层读取它并将它们重新打包为多个 RTP 数据包,现在只更改 SSRC?如果数据包类型不同怎么办。

RFC tutorial on RTP / RTCP protocol seems very confusing to me. I cannot find any state transition diagram for this protocol like this.

该协议像 RTSP 一样是面向媒体的;信令协议负责状态转换处理看这对 SIP/RTP.

It doesn't clear the difference between NTP and RTP Timestamp. It says it is useful for calculating round trip time.

RTP 时间戳用于流内同步,NTP 参考用于流间同步。

Can't it be calculated with the RTP timestamp alone?

是的,当多个流需要同步时使用 NTP,但如果只有一个流,那么 RTP 时间戳就足够了。 总之,rtp 音频通信不需要 NTP,但 rtp 音频+视频通信需要 NTP 才能进行口型同步。

The source will send a SR Report if and only if it recently sent a RTP packet otherwise it's a RR packet. How much the time interval is it actually to determine that if the sender has sent a packet recently?

这与 5% 的开销有关: 控制流量带宽不包括在数据流量的会话带宽中。建议为 RTCP 添加的会话带宽部分 固定为 5%.

what does the mixer do exactly? Does it take all the RTP packets coming from multiple sources and then at the application layer read it and repack them to multiple RTP packets with only SSRC being changed now? what if the packets type are different

混合器相当复杂,但本质上你做对了,多个流被解码并重新编码为一个流;因此如果数据包类型不同,混合器必须能够管理有效载荷内的编解码器内容。