直播连麦技术的研究与实现

2020-09-10 05:16闫新惠
新教育论坛 2020年6期
关键词:直播实现研究

摘要:随着移动互联网的兴起,直播作为一种新型的互联网交流方式近年来迅速发展,在娱乐,电动竞技,教育,安防等领域有着广泛应用。自媒体利用网络直播技术,更是对传统媒体有着具体冲击。本文深入分析网络视频直播中“连麦”技术,并给出一些解决方案及其实现。

关键词:直播;连麦技术;研究;实现

1.视频直播和连麦简介

1.1.视频直播

视频直播分为主播和观众,可以有一个或几个主播对应多个观众。主播通过录屏工具(一般为手机或个人电脑摄像头),录取声音和视频,然后及时的发送到观众的客户端上,客户端为手机或电脑。我们主要考虑移动设备(手机)上直播的实现方案。直播性能上主要有以下要求:

(1)音视频的清晰程度:例如音频采样率和视频压缩率,分辨率。手机上音频采样率要达到16000以上,视频达到720P高清格式;音视频数据量比较大,主播端需要编码压缩,一般使用h264编码,对应的客户端则需要解码操作。

(2)信息的实时性:主播端音视频需要实时传送到观众段,時延要低,这个主要靠网络传输和服务器性能保证。

音视频编码和解码技术上有硬件和软件2种实现方案,硬件方案是利用手机上的特殊硬件来执行编解码,目前手机一般都有编解码硬件,这种方式性能高且开发方便;软件方案则是利用第三方的软件编解码库,例如ffmpeg来实现,其效率低下而且容易影响手机性能,引起卡顿,作为直播方案不太合适。

一旦编码完成,主播端则需要利用网络将数据帧发送到视频服务器(主播推流),服务器将数据转发给客户端(观众拉流),客户端解码后显示并播放声音。

由于视频流受网络影响比较大,通常采用CDN加速的方式,即主播推流到视屏服务器,服务器将视频同步分发到各个地区的CDN子服务器,观众端选择最近的CDN服务器拉流,以减少网络时间消耗。对于网络传播协议方面,常见的直播协议有几个:RTMP、HLS、HDL(HTTP-FLV)、RTP等。

(1)RTMP:属于Adobe专有协议,基于TCP,整个协议比较复杂,现在大部分CDN已不支持。\

(2)HDL(HTTP-FLV):使用HTTP协议流式的传输媒体内容,相比RTMP,没有专利保护,而且由于基于HTTP,协议比较简单。

(3)HLS:由苹果公司提出,也是使用HTTP传输。但是将视频流分割成时间等长的小段,客户端每次读取小段播放,优点在于如果视频不太连续,客户端可以选择跳过某些小段。是目前主流的直播协议。

(4)RTP:基于udp的传输层协议,需要rtcp作为信令协议结合使用。此协议最为灵活,定制性最高,只是目前CDN没有直接支持的。

1.2.连麦简介

“连麦”是视频直播中的一个比较有趣的扩展功能,是指同时可以有多个观众加入到主播中,观众端同时也作为主播端,观众端不仅仅拉流,自己也同时推流。但最终展示的只有一路数据流,所以这多路数据流需要做一个“合并”操作,例如主流合并方法主播端是主画面,但是在右下角开出几个小窗口,每个小窗口对应一个观众端流。可以看到,虽然连麦功能扩展不多,对技术上改变却很大,普通观众端增了推流功能,多路流的合并功能,这些需求在简单直播服务中是无法提供的,我们就连麦技术的实现做了一些分析,提出几个解决方案实现。

2.连麦的技术实现

2.1.服务器多推流多拉流实现

服务器多推流多拉流方式对传统方式做了扩充,连麦用户请求连麦并通过后,和主播用户一样,也推流到服务器,这样服务器需要接受连麦用户和主播2个推流,所有其它用户需要接受这2个推流,并且在客户端做解码,然后将2路视频流按需求定义混合,例如前面说的多个视频窗口功能,就是将主播视频流在主窗口显示,连麦用户视频在小窗口显示,音频流也需叠加混音处理。

这种实现方式适合多主播多用户互动,系统复杂度与耦合性较低,便于扩展。服务器端由于不需要混音、混屏,其压力较低 主要实现集中于服务器端,一个主播需要推送多个流,其带宽占用比较大。对于观众端,连麦主观众和主播的媒体流时间上同步难度比较大,由于网络原因,2路流不能做实时同步,这样在观众端混合视频的时候要考虑到其时间戳,如果相差太大则需要采用某些策略,例如丢弃某路流。

2.2.服务器多推流单拉流实现

服务器多推流单拉流实现方式和服务器多推流多拉流实现方式相类似,也是多个连麦用户和主播同时向服务器推流,不同的是在服务器做混流操作,多路媒体流推送到服务器,服务器端完成多路音视频的合并,观众端和传统方式相比没有变化,收到的只是一路流。这也是目前主流连麦技术采用的办法,很多CDN服务商实现了此功能,对客户端来说改变比较简单。此方式操作简单,但限制也比较多,难点部分放到服务器,服务器不仅仅要推拉流的网络操作,还要实时对推流混码合并,计算量很大,会有比较大的压力。

2.3.P2P技术实现

P2P是peer to peer简称,也就是点对点通信,指客户端之间直接通信,不需要通过服务器中转。在直播中特指音视频数据流在客户端直接交互,这和传统的直播方式差别比较大。P2P技术具体通过端口转发实现,此功能需要网关支持。

实现步骤:连麦用户向视频服务器发送连麦请求,服务器通知主播,主播接受后,双方通过服务器交换对方的网络信息(公网IP地址,端口号),双方以P2P方式尝试直接联接对方的公网IP地扯(如果失败还需通过服务器转发,保证直播能完成,但此时已属于P2P范围),然后主播和连麦用户将自己编码后的流以UDP发送所有其它用户,同时所有用户接受到其它用户流媒体后解码渲染到界面。

“点对点”的特点,除了在信令交互(连麦申请/接受)阶段需要视频服务器介入,连接一旦建立,就不需要服务器了。但是也显然增加了各个客户端的负担,假设主播1人,连麦者2人,观众3人,主播端和连麦端都需要接受2输入流,同时输出5路流。对于手机而言,这是一个不小的负担。所以P2P方式只能适合人数比较少的直播。另外由于媒体流协议采用rtp/自定义的UDP协议,开发难度也比较大,但是其时延和服务器压力是最小的。

3.结束语

本文探讨了直播的连麦技术,介绍了几种连麦功能的实现方案,这些方案各有利弊,具体操作时需要结合其它客观条件因地制宜的实施。

参考文献:

[1]张春元、文梅..流计算和视频编码. 科学出版社,2012

[2]哈渭涛..流媒体中关键技术研究. 科学出版社,2019

[3]蔡康..P2P对等网络原理与应用. 科学出版社,2011

作者简介:闫新惠(1974-),女,汉,山东省泰安市人,讲师,硕士,主要研究方向为计算机网络技术。

猜你喜欢
直播实现研究
谁说小孩不能做研究?
Applications of Deep Mixing to Earthquake Disaster Mitigation
A Thought:What have We Learned from Natural Disasters? Five Years after the Great East Japan Earthquake
对周期函数最小正周期判定法的研究与应用
办公室人员尚需制定个人发展规划
广播二次传播和可视化路径探析
苏州信息学院教务管理系统的设计与实现
浅析铁路通信传输的构成及实现方法