流畅度提升 100%!七牛云 QUIC 推流方案如何实现直播 0 卡顿?

不作任何开发,弱网环境下实现直播零卡顿,听上去是否是天方夜谭?看完这篇文章你就知道,七牛直播云是如何作到的。网络

内容目录

  1. 直播痛点-卡顿
  2. QUIC 是什么?为何能够减小卡顿?
  3. 实测在弱网环境下 QUIC 推流效果
  4. 如何接入七牛云 QUIC 解决方案?

直播痛点-卡顿

卡顿是最影响直播体验的因素之一,也是最难解决的问题之一。在流媒体的传输链路中,任何一个环节丢包均可能致使用户观看卡顿。测试

其中,主播端的推流卡顿最影响观看体验,会直接影响到全部观看直播的最终用户。主播推流卡顿在部分场景会特别显著,好比户外直播就很是考验在网络情况复杂的状况下推流的稳定性。优化

减小卡顿一直是开发者重大的技术挑战,七牛云做为互联网直播行业的先驱又有什么样的对策呢?ui

Google 从 2014 年推出 QUIC 协议后一直在音视频产品上实践该协议。如今,通过一年多的探索和实践,七牛云直播云产品已经拥抱 QUIC,最新推出的直播 QUIC 推流方案能够大幅度的下降直播的卡顿问题,能够在各类复杂网络环境下给客户提供优秀的直播体验。操作系统

QUIC 是什么,为何能够下降卡顿?

既然 QUIC 能够解决如此重要的直播体验问题,那么咱们先从总体了解一下 QUIC 协议。.net

  1. QUIC 的定义是什么
  2. QUIC 在分层网络中所处的位置
  3. QUIC 在传输上为何有优点

1. QUIC 协议的定义视频

QUIC 全称 Quick UDP Internet Connection, 是谷歌公司制定的一种基于 UDP 协议的低时延互联网传输协议。对象

咱们知道,TCP/IP 协议族是互联网的基础。其中传输层协议只有两种: TCP 和 UDP 协议。与 TCP 协议相比,UDP 更为轻量,可是错误校验也要少得多。因为 UDP 是不可靠协议,不保证按序送达,因此其可靠性比不上 TCP 协议。ip

QUIC 传输层基于 UDP 协议但倒是一种可靠的传输协议,由于它将不少可靠性的验证策略从系统层转移到应用层来作,这样可使用更适合现代流媒体传输的拥塞控制策略。资源

2. QUIC 在网络传输中所处的位置

 从图上能够看出,QUIC 传输层用 UDP 协议替代了 TCP。

3. QUIC 在传输上为何有优点

从上面全部对 QUIC 的定义上来看,很明显 QUIC 的对比对象是 TCP。因此下面全部的优点的枚举都是基于 QUIC 和 TCP 的比较。

3.1 更出色的拥塞控制

虽然例如 HTTP/2 或者 SPDY 协议如今都支持将页面的多个数据经过一个数据连接进行传输,该特性也确实可以加快数据的传输速度。可是因为 TCP 协议在处理包时是有严格顺序的,因此仍是会遇到队首阻塞的问题。

好比发生以下图所示场景下的问题时,当其中一个数据没有发送成功,TCP 链接须要等待这个包完成重传以后才能继续进行。所以,即便逻辑上一个 TCP 链接上并行的在进行多路数据传输,其余毫无关联的数据也会所以阻塞。

(Source: QUIC: next generation multiplexed transport over UDP)

 QUIC 协议直接经过传输层使用 UDP 协议就能够避免该问题的发送。因为 UDP 协议没有严格的顺序要求,当一个数据包遇到问题须要重传时只会影响该数据包对应的资源,其余独立的资源不会受到影响而阻塞传输。  3.2 QUIC 更加灵活

TCP 协议栈一般由操做系统层面来实现,例如如 Linux、Windows、iOS、Android 操做系统。所以若是要修改 TCP 协议须要从操做系统层面去作不少事情,这是一项复杂的工程。相对来讲 UDP 协议在操做系统层面实现更为简单,QUIC 基于 UDP 在应用层作了不少网络拥塞控制层面的优化,帮助用户减小复杂网络下的卡顿率,提升流畅度,这是 TCP 没法作到的。

4. 小结

从以上全部的介绍中能够看出,若是咱们须要使用 QUIC 改善直播体验,就是用它来代替直播中 TCP 协议所扮演的角色。你们都清楚目前直播所使用的协议都基本是 RTMP 协议,而 RTMP 协议的传输层是基于 TCP 协议。因此七牛的 QUIC 推流方案就是把 RTMP 当中的传输层协议换成 QUIC,从而达到推流卡顿率降低的效果。

QUIC 的使用效果

上面说了那么多基于 QUIC 作媒体传输的理论优点,那么有没有实际的实验测试做为理论的支撑呢?下面一块儿来看看七牛云 QA 团队给出的测试数据吧。

测试的参数配置: 

测试方式:  使用 ATC 模拟的弱网环境下,用 srs 播放器播放 5 mins,记录流畅度和卡顿次数。

  1. 弱网配置一 ATC配置:delay 100ms  loss 1%

结果分别如图所示:

  1. 弱网配置二 ATC配置:delay 200ms loss 10%

而在 TCP 这种网络配置下,推不起来,或者推一会就会断开。

如何接入七牛云 QUIC 解决方案

咱们相信不少客户已经发现 QUIC 推流这项技术对于本身产品的意义,它能够有效减小主播因为网络问题带来的烦恼。 客户只须要换上七牛最新版本的推流 SDK ,打开客户端上的 QUIC 推流开关,配合七牛云专为直播产品打造的实时流网络,便可让你的产品体验更加流畅。

申请试用

关注公众号七牛云,了解更多信息哦~

相关文章
相关标签/搜索