2018 年俄罗斯世界杯如期而至,世界杯首战俄罗斯 5:0 大胜沙特阿拉伯。
与酣畅淋漓的比赛相反,不少观众反应世界杯揭幕战的网络直播出现了严重卡顿,画质模糊不清等问题。
究竟是什么原因导致了直播卡顿与画质模糊呢?
体育赛事直播流程
本届世界杯获得网络直播版权的有优酷、咪咕以及央视网。因为本届世界杯的国内直播版权是央视独家所有,所以不管我们在哪个平台看世界杯比赛,视频左上角都会有“CCTV”这个标志。
当央视从世界杯现场收到转播信号后,会分发给优酷、咪咕以及央视网。
△ 一般体育直播流程
优酷、咪咕等收到视频后会在云端对视频进行转码、压缩、打水印等操作。上述这些步骤都属于视频转码的常规步骤,属于每天都在跑的流程,基本上是不会出什么大问题。
把常规的体育直播流程套入世界杯,整合世界杯比赛的直播流程:
从数据分发的角度来看,各个环节都正常的话,前面三个环节都不大会出现问题,因为这几个环节的数据流量并没有非常大;但在 CDN 分发到终端观众的这一环节,高并发加上高码率的视频,很容易出现高负载的情况。
CDN 节点数、带宽受限
CDN 具有提升网站访问速度、降低视频延迟、减少视频卡顿等诸多功能。但是当天问题也极有可能是出在了 CDN 上。
据媒体报道,6 月 14 日,中国大陆通过在线直播观看世界杯开幕式、揭幕战的观众,仅优酷就高达 1280 万人,央视旗下电视、新媒体、央视影音App等所有渠道的观众更是高达 1.28 亿人。数量巨大的观看人数对 CDN 节点并发能力要求极高,CDN 节点的数量与带宽直接关系到直播是否会卡顿。因此直播平台一般会选用多家 CDN 厂商,以应对巨大的观看人数。
不过从揭幕战的直播质量看,显然再多的 CDN 节点也抵不住全国过亿观众的热情。
利用闲置资源,解决世界杯直播卡顿
类似于世界杯这类大型直播,并发量巨大、容易卡顿、延迟高是比较容易出现的问题。 CDN 网络受限于节点数量、带宽流量,难以为数亿次的请求提供服务。路由器、光猫、电视盒子、智能电视已经颇为普遍,百兆的家用带宽也已步入寻常百姓家。日常使用中有大量闲置带宽资源,利用这些资源进行内容分发已经成为可能。又拍云 PrismCDN 网络在 300 多个 CDN 节点的基础上,部署了超过 150 万个的雾节点,结合了 CDN+P2P 的优势。雾节点比 CDN 节点更靠近终端用户,在传输速度方面有着天然的优势。
新型 P2P+CDN,端到端秒级延迟
P2P 技术早就应用于直播当中,但是传统 P2P 直播是树状、网状结构,将直播流数据推送到 CDN 服务器上,然后数据一层层地往下推:数据先往第一层节点发,第一层节点收到了之后再发给第二层节点,第二层节点再发给第三层节点,以此类推,逐层往下发。
△ 树状 P2P 直播示意图
当播放人数变多,P2P 直播的节点层级也会随之变大,最多时会有十几层。这导致直播出现少则 30 秒多达到几分钟的延迟。
这种延时水平,已经无法满足目前的体育直播、互动直播等场景低延时的要求。
稳定快速的 PrismCDN
又拍云 PrismCDN 采用新型的直播架构,所有数据从 CDN 节点出发,只经过雾节点便推送到播放终端。具体来说:CDN 服务器将数据推送到机顶盒、路由器、App、WebRTC 等在内的雾节点。PrismCDN 网络的 CDN 服务器会推送数据流到雾节点上面,再由雾节点将数据流转发到各个播放端。
△ 又拍云 PrismCDN 架构示意图
PrismCDN 的扁平化传输模型,可以将端到端的延时控制在 1~3 秒,CDN 服务器把一个数据流推到很多雾节点,雾节点几乎同时把数据推到了播放终端。整个过程中,数据路径非常短,只是通过雾节点同时中转一下,不存在多层转发的问题,因此延迟控制得非常好。
PrismCDN 拥有 150 万规模的雾节点,在实际使用中,PrismCDN 的雾节点分享率通常可以超过 90% 以上。高节点分享率保证了数据传输稳定高效,我们可以假设 CDN 推送 2M 的直播流,到了雾节点这边就是 100K 的数据,雾节点转发到 10 个播放端,这 10 个播放端就得到了 1M 的数据。这 1M 数据对于播放端来讲都是有效数据,即 CDN 的 100K 宽带,通过一个雾节点使播放端得到了 1M 的带宽,这起到了放大 CDN 带宽的作用,相当于把 CDN 带宽放大了 10 倍。
又拍云对雾节点进行质量统计,智能选择高质量的雾节点,启用冗余 P2P 连接。同时根据节点质量调整冗余度,减少 CDN 回源量,进一步保证数据传输的稳定性。
又拍云 PrismCDN 的低延时与高稳定,让它可以完全胜任绝大部分高并发、高码率的直播,真正做到流畅不卡顿。