我是靠谱客的博主 缥缈小海豚,最近开发中收集的这篇文章主要介绍通过RTCP进行媒体流实时丢包重传的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    在RTP/RTCP传输媒体流的过程中,RTCP报文的主要作用在于RR(ReceiverReport),即接收者报告,来反馈统计收到包的数量,丢包数量等信息,来使发送者来及时的调整编码策略,但是由于RTCP的发送间隔为固定间隔,通常为分配给RTCP的连接带宽固定为5%,大致为2-5秒左右一包,并不能用于实时的丢包反馈。

   但是,在RTCP的SDES(SourceDescription)报文中,有Type为NOTE类型的报文,此报文可以添加自定义的内容,发送端借助分析报文,可以实现实时的丢包重传机制。

在RTCP添加的Text中定位为30个字节,其中ea8a为60042,表示接收的端口,01表示一个包,fccc为包序号,为64716。含义为:“再给接收端为60042端口上发1个序号为64716的rtp包”,如下图所示


发送端,可以解析这个RTCP的text包,来重传序号为64716的rtp包,如下:

在RTCP之后,可见Seq为64716的RTP包。

由于RTCP基于UDP实现,时延较小,但是与传统的基于tcp传输的丢包重传机制相比,RTCP存在丢包的风险。

最后

以上就是缥缈小海豚为你收集整理的通过RTCP进行媒体流实时丢包重传的方法的全部内容,希望文章能够帮你解决通过RTCP进行媒体流实时丢包重传的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(269)

评论列表共有 0 条评论

立即
投稿
返回
顶部