云端混流转码--直播连麦技术解决方案

2019-01-30 15:52:10 浏览数 (1)

春运来了,在各地车站码头的年味就是回家的味道。无论人潮多拥挤、路途多艰辛,为了回到温暖的目的地——家,对于在外漂泊的游子来说,路上辛苦点又算什么。小编为旅途的游子们准备了一份新年礼物——云端混流转码。

随着直播业务的蓬勃发展,终端受众也并不仅仅满足于围观,希望能够参与主播的音视频对话中来,如现在在各个直播秀场App下所看到的的连麦互动,包括主播之间的才艺游戏恶搞PK等,它能有效的增强直播的趣味性,让观众获得更大的参与满足感。另外非娱乐场景下与此类似的有在线教育的师生交流问答、金融开户的客服视频见证通话录制等。随着连麦互动和云服务的蓬勃发展,云端混流的业务也相应而生。

客户端连麦互动的主要协议基础

云端混流是客户端连麦互动的后端产品,主要依托连麦服务而生。目前客户端连麦互动的主要协议基础主要有如下三种方式。

1. 基于私有协议互动,一般底层为UDP,需要实现对音视频的重传、冗余恢复FEC等,增加对网络的抗性。另外还配合网络带宽预测等复杂的流控机制,动态对视频的码率、分辨率、帧率策略等进行调整达到视频清晰度与流畅度的平衡,比如目前QQ音视频基础上对外开放的AVSDK。

2. 基于浏览器WebRTC的视频通话会议互动。WebRTC是google主推的浏览器音视频通话的开放标准,目前除了IE浏览器不兼容外, 微软的edge、firefox、chrome、safari都不同程度的兼容了这个标准。光有浏览器支持还不够,要变成商用的产品,还需要许多额外的工作。WebRTC底层基于的是RTP的数据传输,与私有协议类似的音视频重传、FEC冗余恢复、网络带宽预测、动态jitterbuffer、编码参数调整也基本自身都有实现。目前云上也提供基于WebRTC的服务。

3. 基于RTMP的低延迟连麦技术。RTMP是目前直播中最广泛的上行推流协议,各大厂商的CDN对此有非常良好的支持,拥有广泛的开发人员基础。不足的是协议基于TCP,对延迟和抖动的控制天然不如UDP,但是通过云上改善后,如QUIC加速通道和就近上行接入点直接拉流的方式,也能获得不错的连麦效果。

01

云端混流的优势

观众端观看多个主播画面一般有几种方式,一种是观众段直接拉取多路主播的流,直接观看,不过这样做会拉高平台带宽的成本,对于很多直播平台来说带宽是很大的一块运营成本,另外如果对于录制和HLS的分享观看来说,需要得到完整的多画面视频进行存储、观看,这样也无法满足需求。

另外一种是客户端的混流,是客户端在除了互动的视频协议上传的一路以外,额外将客户端混好的流再推一路到CDN,这样整个混流的过程都在客户端完成,好处是所见基本为所得,带来的问题也不少。一是会引入额外的延迟,因为要拉好其他主播的流进行混合处理后再上传。二是对主播的带宽也带来不小的压力,主播需要同时进行两路的上传,对于户外等场景来说也是很大的问题。三是主播的手机同时要进行多路的音频编解码处理,对手机的性能要求也很高。

而服务端的混流则规避了上述的一些问题,将主要的压力从客户端转移到服务端,另外对于主播来说只需要上传一路视频,也提高了视频传输的质量。

02

云端混流的基本架构

云端混流的主要过程如下:

主播和连麦观众的客户端采集音视频流,分别使用RTMP协议推送到接入服务器集群。混流服务器收到混流请求后,从接入服务器拉取到主播端和连麦用户的上行流。混流服务器对输入流进行混流处理,最终合成一条混合流,并推送到CDN分发集群。 CDN分发集群把一路混合流推送给观看观众端,观众端接收到混合流,进行解码后就可以直接展示给用户了。

云端混流支持的基本功能如下:

(1)     支持混入5种输入源类型(音视频,纯音频,纯视频,水印,画布)

(2)     支持混流合成全新流

(3)     支持裁剪,水印功能

(4)     支持模板配置

(5)     支持混流录制

(6)     支持自动混流

03

云端混流的基本流程

在对输入流进行解码后,进行前处理工作,主要是分别将声音、视频等统一为一致的规格,方便后面的处理工作。

视频方面需要尽量转换为YUV420的采样格式,其他格式在向YUV420转换的过程中可能会有轻微的质量损失。声音方面只有在采样率不一样的情况下转换到统一的48khz,双声道,避免采样率变换导致的音质损失。另外为了方便后续的aac直接编码,这里直接选用1024的帧长度,在对PCM声道数据的表达上选用浮点,amix需要输入为浮点的aac,同时浮点在音频叠加合成上也可以避免过早的截断造成的音质损失,为二次处理提供方便。

视频的同步和音频的同步补偿算法

在输入合成的时候每一帧的画面都是由多路的画面合并而成,目前插帧的算法是取单位时间内需要产生的帧的数目,然后根据缺失进行的帧复制的操作。而音频在现在的场景下采用的也是类似的算法。 基于单位区间的补偿算法,能够有效解决用户帧率不相同或者网络不稳定的情况下,可能造成导致混流视频错位等问题。

扫一扫下方二维码,关注“腾讯云视频”公众号

获取更多视频技术服务

关注腾讯云视频,

更多视频干货等你~

0 人点赞