Photo by Mídia from Pexels
直播业务的主要成本就表现在于带宽上,尤其是在用户要求日益提高的未来,带宽带来的成本问题会越来越大。本文来自陌陌流媒体高级研发工程师白松灵在LiveVideoStack线上分享的演讲,详细剖析如何仅仅借助传统CDN技术,不依赖于分片服务器实现简单有效的P2P技术。
文 / 白松灵
整理 / LiveVideoStack
直播回放
https://www2.tutormeetplus.com/v2/render/playback?mode=playback&token=369633933ec94b36b8102f4e838325e4
大家好,我是来自陌陌的技术工程师白松灵,非常荣幸能与大家一起来了解学习直播P2P技术,我将从以下几个方面展开今天的分享。
1. 简要介绍
1.1 传统直播模式
传统的直播技术尤其是一些最简单的直播技术,其主要依赖于主播端推送的RTMP流,或者其他流媒体格式的流数据至CDN进行转化分发,在观众端一般使用HLS、RTMP等各种协议,这是一个常规的直播数据传输模式,在该模式下主要的成本消耗都体现在CDN上,主要依赖的也是直播的成本带宽;我们引入P2P最主要的目的就是节省带宽。对于一个直播公司来说,大部分的成本消耗都是针对于带宽,我们今天引入P2P技术,就是为了实现与CDN的解耦合,
与传统直播模式相同,推流设备将RTMP数据推入CDN,数据流不需要分片也不需要中间其他服务器的转发,观众可拉取http/flv或RTMP数据便可进行分享,观众之间进行的是p2p(peer to peer)传输;数据从推流设备传输到CDN之后,P2P节点也就是每个观众都可作为分享端(也可以说是一个Peer节点)的边缘节点,这一边缘节点可提供分享数据,从而有效避免流量资源在服务器上的浪费,降低整套服务器的运维成本。
1.2 架构简介
该方案和原本的一些直播传输技术并不相同,其并不依赖于CDN公司提供的P2P技术方案。一般来说P2P+CDN方案会将原本的协议进行转协议处理,或是将原本的数据进行分片。我们主要是一家业务公司而非云服务提供商,并不能在CDN上做太多修改,于是我们希望绕过CDN直接在端上或使用其他解决方案来实现P2P传输;实现推流及拉流均匀,同时与CDN解耦合。
该方案不与CDN存在必然关系,而只需要CDN支持传统直播功能。同时推流与拉流均基于RTMP协议,不会对原本协议作出更改;并且这套技术不会给我们的平台整体带来太大影响,包括卡顿率、秒开、延迟原本播放质量等;可实现在控制成本的同时尽可能降低