- 当前网络传输的问题 -
随着互联网视频应用的快速发展,越来越多的平台和行业加入到直播行业,但是对于广大的主播群体来说,也面临着一些质量问题。比如:
传输卡顿
户外、公共场馆等场景,网络不稳定,造成传输丢包、延迟过大或抖动,从而引起推流和播放卡顿;
移动环境下的丢包问题
3G/4G/5G/WiFi环境下,由于物理层和链路层传输误码的问题,导致传输层丢包,但这种丢包并不意味着拥塞;
单一网络带宽不足
单一3G/4G/5G/WiFi网络链路带宽不足或抖动;
移动环境下多网切换问题
主播端在运动场景下,容易发生移动网路或WiFi的切换。
在这些场景,由于单一网络链路通道不稳定或带宽不足,容易造成上行推流卡顿,对播放端的体验造成不好的影响。
- 多链路传输方案 -
腾讯云音视频云直播推出的多链路传输方案,通过多个链路层同时传输,提高整体端到端的传输可靠性和质量,进一步提升上行推流和最终的播放端体验。
传统的硬件IP层方案,更多的是采取支持多网聚合的路由器和网关服务器的方案,通过发送端数据切分、多链路子流传输和接收端数据聚合,实现多链路传输方案。
该方案不依赖于传输层的协议,目前的推流协议都兼容,但需要硬件如路由器的支持。
腾讯云直播的软件应用层方案,则是通过基于腾讯云SRT的可靠性、抗抖动和低延迟能力,实现基于SRT bonding的传输层多路径传输的算法,并针对直播流媒体场景进行了优化。同时也去掉了硬件的依赖,仅需发送端有多网卡即可。腾讯云通过自适应的多路径推流,提升主播上行传输质量。
具体的,发送端首先将所有建立好的connection加入到一个group,然后针对每条链路,会根据实时的传输QoS进行状态的判断和决策,结合接收端的反馈信息计算实时的rtt、loss rate等判断链路的质量和拥塞状态,并选择最佳路由进行数据的发送。接收端对一个group内所有connection收到的数据进行包级别的去重和排序,最终返回完整有序的包序列给上层应用。
通过实时测量QoS,调整发送路径
在实际的一些场景上,针对一些重要的活动,若上行多网带宽充足,发送端会根据QoS选择最佳路由,进行数据发送,当前链路出现异常或QoS波动,发送端会动态的调整路由,将当前数据通道切换至质量最好的路由,并进行下一阶段的数据发送。或根据QoS情况进行冗余发送,服务端通过聚合和去重,来提高整体传输的稳定性和低延迟。由于网络质量是随时间流逝会变化的,因此数据通道会根据实时的QoS不断切换。另一方面,对于单一网络链路带宽不足或抖动的场景,发送端也会根据多个通道的QoS情况,同时进行多路径发送。同时,做到包级别调整发送路径,如高优先级包、重传包等采用rtt更短的路由,确保整体传输质量的最优化。
多路径模式下的数据传输示意图
- 多路径传输的效果 -
使用多路径传输后,传输稳定性得到了明显改善。
WiFi断掉时,4G通道数据快速补上
最终聚合后的帧率曲线,在网络切换前后平稳无抖动
4G和WiFi通道多路径发送
接收端码率曲线
- SDK端架构及使用方式 -
终端上,腾讯视频云提供了Tmio SDK,内部实现了多网传输的能力。
因当前广泛使用的推流协议是RTMP,产品中往往已经集成了RTMP的支持。用户可通过RTMP over SRT的方式接入,利用SRT的特性提升弱网表现。Tmio中RTMP over SRT有两种接入方式:
修改传输层,将tcp替换成srt即可;
通过TmioProxy代理方式,RTMP推流到本地代理,本地代理用SRT协议转发数据到服务端。对已有RTMP代码实现零侵入。TmioProxy只做双向数据透传,不做数据解析。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-22 17:32:00
2022-11-24 13:53:15
2022-11-24 11:09:16
2022-11-24 10:38:36
2022-11-24 10:08:45
2022-11-24 14:17:44
甄选10000+数字化产品 为您免费使用
申请试用
评论列表