生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

百度云互动直播的技术细节和解决方案实践经验谈

  • 2017-03-12
  • 本文字数:4109 字

    阅读完需:约 13 分钟

目录

  1. 互动直播背景
  2. 连麦流程、功能与技术指标
    2.1. 连麦的业务流程
    2.2. 互动直播的功能
    2.3. 技术指标
    2.4. 应用领域
  3. 主流的技术方案
    3.1. 互动直播技术领域
    3.2. 主流的技术方案
    3.2.1. 基于 RTMP 技术的连麦
    3.2.2. 基于 WebRTC P2P 方式的连麦
    3.2.3. 基于低延时网络的连麦
  4. 百度云互动直播解决方案
    4.1. 整体解决方案
    4.2. 基于 RTMP 协议的连麦
    4.3. 基于 UDP 私有协议的解决方案
  5. 技术发展趋势

互动直播背景

2016 年被称为“直播元年”,目前早就进入了直播战国时代,移动直播 App 多达数百家,庞大的移动用户规模已经形成。网络直播作为新兴的社交方式已引发新一轮媒介革命,迅速成为新媒体营销的新阵地。

如何在直播竞争中取得领先优势,成为各个平台寻求差异化的动力,“互动直播”成为了直播发展的趋势。通过视频连麦,用户之间可以进行视频互动,达到更深层次的超越语言文字的交流。

互动直播与单向直播不同,赋予了普通观众“露脸发声”的权利,低延时的网络,主播可以实现与连麦观众的双向互动,在直播房间里的其他观众也可以观看主播和连麦观众互动的过程。在互动的时候还可以加上道具、美颜等滤镜,与陌生人进行视频互动聊天,是社交的下一个场景。如果一个观众喜欢该直播,他可以通过发送公开问题、赠送一个或多个虚拟礼物来引起主播的注意,寻求与主播进行视频连麦的机会。

连麦流程、功能与技术指标

连麦的业务流程

连麦的业务流程描述如下:

  1. 主播正常开始直播,普通观众看到主播的单人直播画面;
  2. 需要连麦的观众发起连麦请求,进入连麦申请列表;
  3. 主播从连麦申请列表中选择一名或多名观众进行连麦操作,主播与连麦观众进行实时音视频互动,同时互动直播后台生成“合成画面”(混流画面);
  4. 普通观众看到直播画面为包含主播与连麦观众的“合成画面”;
  5. 连麦结束,恢复主播单人直播模式。

在业务模式上,主要有两种连麦需求,一种是主播主动邀请观众上麦,另外一种是观众申请连麦,业务流程如下图所示:

互动直播的功能

低延时音视频通信是互动直播的核心技术能力,另外包括终端上面的视频处理能力,如降噪、美白,声音处理能力;音频降噪、回声消除等等的能力。

同时,系统支持更大规模观众数的直播服务,可以将主播和多个连麦用户的画面,经过音视频混流后,推送到 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 )关注我们。

2017-03-12 17:296388

评论

发布
暂无评论
发现更多内容

InfoQ 引航计划正式启动!全网最优质技术内容,拿来吧你!

InfoQ写作社区官方

引航计划 技术专题合集 热门活动

7个非常有前景的C++专业就业方向

hanaper

数据安全法真的来了,这6个“雷区”千万别踩!

腾讯安全云鼎实验室

数据安全 数据安全法

洞穿性能测试痛点,PerfDog以提升应用和游戏的品质为使命

WeTest

“人类先锋”点亮物联网灯塔

脑极体

AISWare AntDB 亚信数据库在多省份计费系统应用案例

亚信AntDB数据库

案例分享 #数据库 9月日更

财经大课:如何看待规模化与差异化竞争

石云升

财经思维 9月日更

fil挖矿gas费怎么看?fil挖矿需要质押多少?

fil挖矿需要质押多少 fil挖矿gas费怎么看

AJAX获取的日期相差8小时

hasWhere

数字人民币最新技术成果将亮相2021年服贸会

CECBC

以两军问题为背景来演绎BasicPaxos

OpenIM

看云起云动 览开源盛世 | 亚马逊云科技中国峰会Dev Day线上来袭!

亚马逊云科技 (Amazon Web Services)

🐦【Mybatis开发指南】如何清晰的解决出现「多对一模型」和「一对多模型」的问题

洛神灬殇

Java mybatis mybatis配置 9月日更

网络攻防学习笔记 Day124

穿过生命散发芬芳

9月日更 互联网安全

【HTML5游戏】从敲打空格键开始

devpoint

HTML5游戏 9月日更

【虚拟机专栏】Rust智能合约的应用

趣链科技

区块链 智能合约 虚拟机

fil挖矿机靠谱吗?fil挖矿哪家靠谱?

fil挖矿哪家靠谱 fil挖矿机靠谱吗

直播访谈-数据产品修炼之路

第519区

数据产品经理

MySQL 获取表的信息

玄兴梦影

MySQL 数据库表 查询语句

kubebuilder 构建控制器说明点

Geek_f24c45

Kubernetes kubebuilder kube-controller

线程同步类CyclicBarrier在性能测试集合点应用

FunTester

多线程 性能测试 线程安全 测试框架 FunTester

揭秘版权保护下的视频隐形水印算法(下篇)

拍乐云Pano

音视频 RTC 拍乐云 隐形水印

国产接口管理工具ApiPost中的COOKIE管理器

Proud lion

大前端 后端 Postman 开发工具 Cookie

重磅!博睿数据通过CMMI5级评估,国内APM领域首家

博睿数据

北鲲云超算平台如何帮助现代生物制药发展?

北鲲云

Java + opencv 实现图片修复(图片去水印)

张音乐

Java OpenCV 音视频 9月日更 图片去水印

ShardingSphere 语句解析生成初探

源码 ShardingSphere

链路压测中各接口性能统计

FunTester

性能测试 测试框架 测试开发 FunTester 链路测试

OCR加持白描App,让AI成为视障者的眼睛

百度开发者中心

人工智能 最佳实践 方法论 前沿技术

数据结构和算法在流程画布中的实际应用

GrowingIO技术专栏

数据结构 G6 图可视化引擎 流程画布

未来10年,5个C/C++吃香的细分领域技术

奔着腾讯去

云原生 网络安全 音视频 DPDK 虚拟化技术

百度云互动直播的技术细节和解决方案实践经验谈_百度_邢怀飞_InfoQ精选文章