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


    目录

    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或私有标准
    协议 H.323、SIP、WebRTC,私有UDP RTMP、HTTP、HLS、DASH
    分发 成熟的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里边。同时,在网络视频的监管方面,对智能化的鉴黄等也提出了新的需求。

  • 相关阅读:
    泛型中的类型擦除
    chatty: uid=10549(u0_a549) com.exampleidentical 40 lines
    Android 属性动画ObjectAnimator和ValueAnimator讲解
    解决Error:Unable to find method 'org.gradle.api.internal.project.ProjectInternal.
    Android Studio 模拟器无法打开 emulator: ERROR: x86 emulation currently requires hardware
    有关 java 不定参数
    数据处理
    有关SharedPreference的使用
    关于Fragment的onActivityResult 不执行
    Java GC回收机制
  • 原文地址:https://www.cnblogs.com/zhangxiaoliu/p/6586575.html
Copyright © 2020-2023  润新知