弱网对抗

前言

伴随着通信技术不断发展,网络带宽不断提升,基于音视频实时通信应用越发广泛。如视频会议,互动娱乐,云游戏等。今天商业化的线上教育已经走进千家万户。作为一个从事近20年视讯行业人员不禁感慨,当年如视频会议这些高端产品,4CIF时代就称为高清,需要专线承载。如今1080P,4K开始走进千家万户。可即使今天,基于互联网的时音视频(RTC:Real-Time Communication)依然面临着较大挑战:1.用户网络和终端设备千差万别,有线、4G、WIFI,无法保证每个用户拥有一个可靠稳定的网络环境;2.传输数据量不断增长,如1080P高清、2K,4K视频、3D,VR,AR等应用;3.应用场景愈加丰富,如云游戏希望能做到极致低延时;

TCP VS UDP

TCP 是面向连接的传输控制协议,TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,这样会导致延时累加,后续延时会越来越大,极端情况下会出现卡死。
UDP是无连接的,即发送数据之前不需要建立连接。UDP尽最大努力交付,不保证可靠交付。UDP 具有较好的实时性,工作效率比 TCP 协议高。UDP的传输质量保证要依靠上层应用程序,因此也具有较强的灵活性。
当前实时音视频领域一般是基于UDP传输,然后各大厂家为在保证质量前提下尽量降低延时,上层做Qos各显神通。

网络传输常见问题

互联网传输中会出现抖动、拥塞、丢包、延时等情况。

丢包:
视频压缩算法一个核心利用视频画面每帧数据的强相关性,依赖参考帧尽量减少传输数据。因此一旦出现丢包,解码端会出现花屏,如果技术上不及时恢复会一直存在并累加。另外,视频每帧数据经过编码压缩后按一个个分组包进行传输,当数据丢失后整个GOP都会出现解码异常,当出现新的I帧才能恢复。基于UDP的传输解决丢包恢复问题一般采用FEC(前向纠错),或重传。
抖动:
抖动是衡量网络稳定性的主要参数,指最大延迟与最小延迟的时间差。在抖动严重的网络中传输实时视频流会感觉视频卡顿(感觉上时快,时慢)。避免网络或减少网络抖动技术方案上,一般尽量控制编码发送码率稳定,另外解码端增加缓冲Buffer(Jitter Buffer)。而显而易见Jitter Buffer的引入会导致延时增加。
拥塞:
在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞(就像我们上下班高峰期,好的情况下能缓慢行驶,坏的情况下在一段时间内直接堵死)。对于拥塞情况,最好是做网络情况预判,可以做优先抉择,如音频保证,降低分辨率码率。避免完全无法通讯或者图像卡死情况。

Qos常用方法

FEC:
FEC(前向纠错码)是一种常用的抗丢包方法,简单理解就是在发送端额外发送一些冗余数据,用于抵抗网络丢包。当接收端检测到媒体数据发生丢包时,就可以利用接收到的冗余数据进行丢包恢复。FEC恢复虽然引入一定延时,但包恢复延时低,缺点是冗余数据占用额外带宽。 RTC音视频传输中一般按Packer包为单位进行检查和恢复,一个Group由N个媒体包+K个冗余包组成,它们在Group中拥有不同的组号,通过组号的连续性判断丢包情况,从而予以恢复。
关于FEC详细介绍可以见http://www.mediapro.cc基于RTP传输FEC前向纠错算法。

重传:
ACK是大家比较熟悉的传输层保障措施,在类TCP的UDP传输方案中(UDT、KCP等)中通过优化ACK发送时机、更短的超时重传时间等措施来获得更高的数据吞吐率,但ACK并不适合对实时要求极高的直播互动领域。NACK与ACK不同,它是在没有收到数据包时向远端请求重传,因而更加适合实时通讯。通过与FEC的结合,只对FEC无法恢复的数据包请求NACK重传,能够尽量的降低重传发起概率,降低重传带来的副作用。详细可见http://www.mediapro.cc基于RTP的QOS算法简介。

JitterBuffer:
一方面JitterBuffer它会把收到的乱序的包排好序放在buffer里正确的位置上,另一方面它把接收到的包放在buffer中缓冲一些时间使播放的更平滑从而获得更好的视频质量。JitterBuffer会引入一定的时延,一个好的缓存设计要尽可能在网络情况好的情况下不引发或降低时延。详细可见http://www.mediapro.cc基于RTP的QOS算法简介。

自适应码率:
在一对多,多对多实时互动情况下,用户网络存在差异;或者用户在使用环境中网络情况发生变化(如无线信号强弱变化)。这时候如果采用统一码率传输,那么有些终端将出现通讯异常,严重的会出现语音视频卡顿花屏。而自适应码率就是要根据用户实际网络情况,发送合适码率的音视频流,首先保证通讯的可用性,特别是语音信号的正常。在网络变差的情况下,降低码率,这时候不可避免带来图像质量的损失(如分辨率降低,帧率降低,图像压缩加大)。

自适应码率是一种与编码端配合的方案,实际上要做好弱网实时传输,最好从编码 传输 解码全流程考虑。如SVC,高低码流,长期参考帧等方式都是根据网络情况,终端情况结合编码端灵活处理。

实验对比

本文相关相关内容详细描述、实验对比、Demo可以到公司技术网站上查看。
网站地址http://www.mediapro.cc/
长沙可得信息技术有限公司官网http://www.cskede.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值