RTP协议,Real-time transport protocol. 从名字可以看出是实时传输协议。那么他是怎么做到实时性的呢?根据我对spec的研究,他的实时性实现是通过RTCP来实现的。
RTCP通过接收报告(receipt report)对流量进行检测,从而进行拥塞控制。 并且可以根据网络的负载能力调整传输包的速率,比如正常情况下我5秒钟传输一个RTCP包。如果网络比较繁忙的时候,我可以做到10秒,15秒,25秒来传输一个RTCP包,把更多的带宽分配给RTP数据包的传输,保证多媒体数据的正常传输。
如果我们这边的网络环境很差,而我们要访问的视频源的码率又非常高。那么我们怎么处理这个矛盾呢? 这时候我们可以在利用mixer来帮我们的忙。
如果我们要访问的视频源被防火墙挡住了,那么我们可以借助于translator来帮我们的忙。
具体Mixer和translator的描述,请参考spec