你好,游客 登录 注册 搜索
背景:
阅读新闻

通过RTCP进行媒体流实时丢包重传的方法

[日期:2017-04-19] 来源:Linux社区  作者:dong_beijing [字体: ]

在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进行媒体流实时丢包重传的方法

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

通过RTCP进行媒体流实时丢包重传的方法

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

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

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-04/142928.htm

linux
相关资讯       RTCP 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款