众所周知运维成本是直播网站最大的成本组成,运维成本则主要体现在带宽,而伴随主播与用户对视频清晰度以及连麦的需求不断提升,直播带宽也在与日俱增。本文整理自学霸君音视频技术负责人袁荣喜在LiveVideoStackCon 2017上的分享,通过实践案例讲解了如何使用P2P技术将带宽和延迟降低到传统技术的1/3,并详细介绍了P2P分发算法的架构设计和技术实现细节。
演讲 / 袁荣喜
整理 / LiveVideoStack
大家好,我是来自学霸君的袁荣喜,我演讲的主题是《P2P技术是如何拯救一家直播网站的》,众所周知直播网站最大的成本就是运维成本,当然还会有一部分主播的成本,而运维成本的主要表现就在于带宽,从目前统计来看,一个直播网站的成本大概有30%来源于带宽。
一个直播网站的窘境
我的一个朋友是做直播平台的,每天大概有10万人观看,在经历了2016年的千播大战之后,他们升级了观看体验——主要是提高了分辨率和清晰度,但成本也因此提高到了原本的5倍,也就是假如原本是20G,现在每天要付出100G的带宽流量,这对于一个普通的平台来说成本是致命的。
基本情况
那么我们先来看下这家平台的具体情况:它是南方三线城市的直播平台,PC占有率大概有70%,移动端占有率在30%左右,码流也从320x240,20K升级到640x480,大概每秒的单路码流在800kbps左右,也就是100KB/S的样子 。因为它和YY类似,都属于聊天室形式的,也就说每一个观看端都会有上麦的需求,也因此必须要解决延迟的问题,如果延迟太大,在上麦的过程中和下麦的过程中有可能会产生信息不对等,由此丢失一部分信息,因此对于观看端延迟要求在两秒以内,而麦与麦之间的延迟要控制在500毫秒,这就对延迟有非常高的要求。
成本
前面提到平台观看人数能达到10万以上,它每天在边缘节点上就需要用83G来扛住边缘节点的分发,由于系统是分布式的,因此在边缘节点与边缘节点之间也需要做分发,这部分又会需要2G的BGP带宽流量,这个带宽很大。因此它需大概100台物理机来抗,对于私有云搭建的成本我并不是很了解,如果按照公有云来计算的话,每个月大概要支付百万以上的成本,这对于一个三线城市的小公司来说压力是巨大的,况且还有比较沉重的业务和寥寥无几的融资渠道。
存活的希望
那么平台想要继续存活,就需要将带宽成本降到现在的1/3,也就是只用30G就能解决问题。将产品迁移到CDN上是一个解决方法,毕竟各大云厂商目前的优惠力度还是比较大的,但他们在前期采用CDN做测试时发现会有两个问题:首先是延迟问题,在很多分享中也有提到CDN的延迟至少是3-5秒,有时候更大,尤其是在大规模直播下;而第二个问题则是每个观看端都会有上麦的需求,但连麦服务是需要额外付费的,综合计算使用CDN也无法降低成本,甚至还有增加。
那么我们考虑是否可以通过调整编解码来实现,大家都知道H.265从编码效果上来说可以减掉一半的成本,我们也在小规模内尝试了替换,不过发现存在CPU消耗的问题,因为观看端的设备比较多样,既有移动端、也有PC端,并且设备的性能参差不齐,在较差的机器上会频繁出现卡顿,根据统计大致有50%的用户无法接受这个方案。
那么既然是传输产生的高成本,是否可以对传输方式做优化——P2P技术,它早期源于音频分享和文件分享,并且是下一代CDN的主流技术。在做这样一个系统之前首先需要调研目前用户端上传的最大带宽,我们发现有50%以上用户的上传带宽在1.6mbs以上,平均来看大概可以做到640KB/S 码率的上传程度。前期调查后,我们确立了系统设计的三个目标:降成本、控延迟和保质量,也就是在保证用户体验下将成本降低1/3,在后期的小规模测试和大规模替换中的效果还是比较满意的。
流媒体P2P分发系统