目录
- 互动直播背景
- 连麦流程、功能与技术指标
2.1. 连麦的业务流程
2.2. 互动直播的功能
2.3. 技术指标
2.4. 应用领域 - 主流的技术方案
3.1. 互动直播技术领域
3.2. 主流的技术方案
3.2.1. 基于 RTMP 技术的连麦
3.2.2. 基于 WebRTC P2P 方式的连麦
3.2.3. 基于低延时网络的连麦 - 百度云互动直播解决方案
4.1. 整体解决方案
4.2. 基于 RTMP 协议的连麦
4.3. 基于 UDP 私有协议的解决方案 - 技术发展趋势
互动直播背景
2016 年被称为“直播元年”,目前早就进入了直播战国时代,移动直播 App 多达数百家,庞大的移动用户规模已经形成。网络直播作为新兴的社交方式已引发新一轮媒介革命,迅速成为新媒体营销的新阵地。
如何在直播竞争中取得领先优势,成为各个平台寻求差异化的动力,“互动直播”成为了直播发展的趋势。通过视频连麦,用户之间可以进行视频互动,达到更深层次的超越语言文字的交流。
互动直播与单向直播不同,赋予了普通观众“露脸发声”的权利,低延时的网络,主播可以实现与连麦观众的双向互动,在直播房间里的其他观众也可以观看主播和连麦观众互动的过程。在互动的时候还可以加上道具、美颜等滤镜,与陌生人进行视频互动聊天,是社交的下一个场景。如果一个观众喜欢该直播,他可以通过发送公开问题、赠送一个或多个虚拟礼物来引起主播的注意,寻求与主播进行视频连麦的机会。
连麦流程、功能与技术指标
连麦的业务流程
连麦的业务流程描述如下:
- 主播正常开始直播,普通观众看到主播的单人直播画面;
- 需要连麦的观众发起连麦请求,进入连麦申请列表;
- 主播从连麦申请列表中选择一名或多名观众进行连麦操作,主播与连麦观众进行实时音视频互动,同时互动直播后台生成“合成画面”(混流画面);
- 普通观众看到直播画面为包含主播与连麦观众的“合成画面”;
- 连麦结束,恢复主播单人直播模式。
在业务模式上,主要有两种连麦需求,一种是主播主动邀请观众上麦,另外一种是观众申请连麦,业务流程如下图所示:
互动直播的功能
低延时音视频通信是互动直播的核心技术能力,另外包括终端上面的视频处理能力,如降噪、美白,声音处理能力;音频降噪、回声消除等等的能力。
同时,系统支持更大规模观众数的直播服务,可以将主播和多个连麦用户的画面,经过音视频混流后,推送到 CDN 进行分发,称之为“旁路直播”。我们将位于 RTC 低延时网络里边的用户称为“高级观众”,而将收看 CDN 混流画面的观众称之为“旁路观众”。通过旁路直播,可以支持数千万的观众并发的场景。
总结起来,互动直播包含以下三个重要特征:
- 互动房间里的每个人都有上麦和下麦的权利
- 端到端演示小于 500ms
- 互动房间的容量可以达到万人以上
技术指标
参数类型
百度互动直播指标描述
音频采样率
8K,16K,48K
进入房间速度
WIFI:960ms 4G:1504ms
视频码率范围
30~1500kbps
视频分辨率
CIF 到 720P
最多同时音视频
7 路
抗丢包率
35%
延迟范围
150~400ms
同房间并发观众数目
10 万人以上
应用领域
直播秀场、视频社交、互动课堂、远程医疗、 企业年会、股评分析、 电商宣传等领域。
主流的技术方案
互动直播技术领域
互动直播与单向直播虽然都是“直播”,都属于音视频技术领域,但在行业发展上却有着很大的不同。互动是双向的,在专业上属于视频通信技术领域,而目前传统的直播属于流媒体传输技术领域。是不是从现有的成熟的 CDN 技术,可以很快做出一套完整的互动直播方案呢?答案是否定的。
我们可以通过下面看一下两个领域的区别:
项目
单向直播 LIVE
互动直播 RTC
方向
单向,一对多,广播型
双向,一对一或一对多互动
延时
3-5s 或更多
< 300ms
编码
标准 CODEC,如 H.264
标准 CODEC 或私有标准
协议
RTMP、HTTP、HLS、DASH
H.323、SIP、WebRTC,私有 UDP
分发
成熟的 CDN 技术和服务商
RTC-CDN 仍在构建中
主流的技术方案
在技术方案上,基本上有下面几种可以实现的方案:基于 RTMP 和 CDN 技术的连麦、基于 WebRTC(P2P)与旁路直播的连麦、基于低延时网络的连麦。
基于 RTMP 技术的连麦
当有连麦者时,则主播端和连麦端,都分别推一路 RTMP 流到 CDN,CDN 再将这两路 RTMP 流发送给观众端,观众端将两路 RTMP 流合成为一个画面。
这个方案的优点是实现简单,协议与 CDN 架构兼容,对客户来说在现有单向直播架构上,接入成本比较低,但是缺点也是很明显的:
- 主播与连麦者如果要进行交互,考虑到上面分析的延时问题,因为 RTMP 协议是基于 TCP 协议传输的,在 CDN 中传输延时较大。
- 主播与连麦者交互时,声音会产生干扰,形成回音
- 观众端要接收两条视频流,带宽、流量消耗过大,并且两路视频流解码播放,耗费 CPU 等资源也非常多。
基于 WebRTC P2P 方式的连麦
WebRTC 是 Google 公司的开源技术,降低了音视频通信的接入门槛,也有公司采用该项技术实现连麦。主播与连麦用户采用 P2P 方式进行交互,然后在主播端进行混流,然后在 CDN 上进行混流,发送到观众端。
该套方案的优缺点如下所述:
- P2P 在某些网络下无法穿透,有些观众根本无法与主播端进行交互。
- 主播端需要上传两路视频:一路 P2P 与连麦者进行交互,一路使用 RTMP 推到 CDN。还要下载一路视频:连麦者 P2P 发送过来的交互数据。所以主播端要求带宽需要较高,网络较差时无法进行主播。
- 主播端要进行多路视频的编码、解码,要求主播端设备配置比较高,较差的设备也无法进行主播。
- 只能支持一个连麦者,不能支持多个连麦者。
- 由于主播端和连麦者经过 CDN 合并成一路,因此,不能实现主播端和连麦者视频大小窗口切换。
基于低延时网络的连麦
基于私有 UDP 协议的传输与 RTMP 相比具有先天的优势,但如果采用该方案也需要解决一系列的技术问题如:
- UDP 的可靠性传输如丢包重传、网络抖动的处理
- 网路拥塞的控制算法
- 在全球节点的部署与智能调度
- 各种端的全面支持
以上都是在短期内很难实现的。
而百度云在多年 CDN 技术的基础上,通过对私有 UDP 协议,实现了用户视频通信的实时传输网络 RTN。
百度云互动直播解决方案
整体解决方案
基于客户和市场的需求,百度云推出两套不同的互动直播解决方案:
- 基于 RTMP 协议与 CDN 的连麦技术方案
- 基于 UDP 私有协议和实时分发网络 RTN 的连麦解决方案
两套方案互为补充,以满足不同客户的需求。
如前所述,如果用户在单向直播方面已经有了大量的用户,且技术架构确定,可以采用 RTMP 协议的解决方案,减低接入成本。采用 RTMP 方案的传输。
在并发规模不是巨大,或者对延时有着超低需求的场合,如视频会议、视频社交等场合,我们推荐使用基于 RTN 网络的全低延时解决方案。
下面就这两套解决方案做一个介绍。
基于 RTMP 协议的连麦
(点击放大图像)
RTMP 协议是基于 TCP 传输的协议,为了达到低延时的传输,我们采用多方面的技术手段进行优化。
网络延时是指从主播端采集,到观众端播放之间的时间差。引入延时的环节包括: 编码延时、传输延时、解码延时等。传统 CDN 的分发都是为了一般采用 RTMP 协议,如果一旦出现网络的抖动、丢包,因为可靠性传输的原因,就会引入较大的传输延时。
基于百度云覆盖全国的 IDC 核心网络,部署基于 RTMP 协议加速分发节点,专门用作连麦用户和主播的媒体传输通道,而不连麦的观众,仍然走传统的分发路径,来应对 RTMP 高并发用户的观看。
在终端支持方面,将传统直播的推流 SDK 和播放 SDK 进行合并,并且加入独有的回声消除(AEC)引擎,来解决连麦双反可能出现的回声问题。针对连麦场合,减少 RTMP 播放器的缓冲器,保证播放器引入较低的延时。
在混流方面,采用服务端混流的解决方案,与端上混流的方案相比,计算能力和分发能力较强,同时降低了主播端的带宽压力,提高流程性。
基于 UDP 私有协议的解决方案
与 RTMP 协议的连麦方案不同,主播和高级观众的连麦是在基于 UDP 协议的实时传输 RTN 上实现的。
首先说一下低延时 RTN 网络与 CDN 网络的不同。CDN 是存储转发结构,设计目的是在各个边缘节点缓存待分发内容,结构上从源站到观众是伞状多级缓存放大方式。RTN 网络本质上是一个实时传输网络,用户的数据在网络单元内部和传输线路上都以实时交换方式传送,从而能够保证最低延迟。底层协议不同。
RTN 采用了专为实时传输设计的 UDP 协议,避免了采用 TCP 的延时不可控缺点。能够大大缩短交互延时,延时可从 CDN 方案的数秒,降低到数百毫秒。基于自定义路由,选择最优传输路径,直接将内容端到端传输,数据在网络单元中从不缓存,从而最大可能地降低延迟,同时内容安全性也更好。CDN 是将内容缓存于缓存服务器中,再将内容就近下发。
在使用场景方面,SD-RTN 适用于要求极低时延的实时互动场景,例如网络电话、视频会议、有主播与观众交互需求的互动直播等。CDN 适用于对时延要求不高的场景,例如对延时要求不高、类似电视的单点直播、网站加速等。若硬要将 CDN 改造用于互动直播,那么其结构上对降低延迟的不适应性,始终会成为质量改进需求的瓶颈。
在网络传输性能指标方面,可以达到 30% 的抗丢包的传输。
客户端通过 RTN 的就近接入策略,让使用者就近接入质量最好的数据节点,通过百度云的智能调度策略优化路由,经过传输延迟和质量优化的最优路径,自动避免网络拥塞,并规避骨干网络故障的影响。
主要的技术特点如下:
-
可以支持更多的主播交互,目前支持 7 人视频交互,万人并发语音交互
-
当有观众连麦时,其他观众端收到的多路视频,观众端可以动态选择布局
-
服务端混流服务器推送到 CDN,其他观众(网页端等)可以直接观看
-
在经过 RTMP 推流前的观众端,可以进行大小流切换,自主选择视频大小窗口的切换 (点击放大图像)
通过 RTN 实时网络与基于百度 CDN 技术相结合,百度云推出了互动的直播的完全解决方案,其技术架构如上图所示。
通过百度云的信令系统,用户无论选择哪种技术方案,都可以快速的接入一整套的互动直播解决方案。
技术发展趋势
随着移动互联网技术的进步,直播技术正在朝着移动化、互动化和智能化的方向发展。实时通信能力,也将成为一种移动互联应用的基础能力,从而嵌入到几乎所有的 APP 里边。同时,在网络视频的监管方面,对智能化的鉴黄等也提出了新的需求。
作者介绍
邢怀飞,百度高级研发工程师,负责百度云媒体云互动直播方向的技术研发。
感谢孟夕对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论