互联网直播技术进展研究
作者:朱伟
来源:《现代信息科技》2018年第10
        要:本文从互联网直播的概念、技术原理、分发方式、关键协议以及互联网直播技术架构等几个方面系统地对互联网直播技术进行了介绍与分析。简单直播网站架构的提出以及通过对各个技术的分析,得出现阶段互联网直播技术的主流方向。
        关键词:直播技术;互联网;传输协议
        中图分类号:TP393G206 文献标识码:A 文章编号:2096-4706201810-0104-03
        AbstractThis paper systematically introduces and analyzes the internet direct seeding technology from several aspectssuch as the concepttechnology principledistribution wayskey protocols and the internet broadcast technology architecture. The introduction of simple live web site architectureand the introduction of simple live web site architecture and the analysis of various technologiesget the current mainstream direction of internet live broadcasting technology.
        Keywordsbroadcast technologyinternettransport protocol
        随着国家步入十三五规划,国内网民数量指数级增长,网络带宽环境不断好转,互联网直播网站如雨后春笋般地大量涌现,[1]中国网络视频市场不断壮大。在表现形式上,主要包括在线各类教育培训、明星现场演唱会、重大事件发布会、文体娱乐活动、个人表演show以及各类学术交流会等信息传播。从技术层面来看,互联网直播具有实时性强的特点,不需要分段、转码、发布等繁琐步骤,例如视频、音频的点播。播放形式上,用户只要有一个连通网络带宽的设备,如平板电脑、手机等,不受地域限制,就可以实时地观看到正在直播的节目。
        1 互联网直播概述
        1.1 什么是互联网直播
        在现场,随着事件的发生、发展进程同步制作和发布信息,借助宽带网络资源,依托流媒体视频压缩技术手段,通过将拍摄、录制的音视频信息进行一系列的编码、压缩处理,在互联网上进行实时播放出去,只要有网站的播放端口或者移动客户端,就可以看到现场直播
的信息[23]。除此之外,互联网网络直播还可使用双向互动的形式进行在线交流,使得更多的受众能够在网络以文字形式进行交流及探讨问题,也可以通过视频画面的方式来实现面对面的交流,最终实现文字、语音、图像的实时同步传输。
        1.2 互联网直播优势显著
        首先,互联网直播极大的提升了各类活动的影响力以及传播与宣传面。其解决了异地举办会议会务活动,让资源达到最大限度地共享;使客户沉浸式地感受到现场的实时气氛。企业和组织也可通过互联网直播将活动内容的精彩与价值分享给现有的客户,乃至潜在的客户。而直播的视频还可以进行云存储,以便随时点播、回放重播。
        2 互联网直播传输技术策略
        以往的内容传输大都是以嵌入式网页播放器的形式进行播放。可是在实际网站直播应用中,使用该技术处理的流媒体音视频播放品质没有达到用户所期许的效果。随着FMS软件技术的不断改进,Flash Media Server流媒体技术被广泛应用。众多互联网用户对在线短视频产生了浓厚的需求,如何利用碎片化的时间,满足各自需求,Flash Media Server系列的产
品发展也日臻完美,通过几个版本的升级改进,其性能和稳定性有了大幅的提升。音/视频文件最终能够呈现在受众面前,是经过了一系列的过程最终才实现的,比如通过信号源采集、转码以及Flash Media Server等实现。
        2.1 视频直播流程
        视频直播的流程可以分为以下几个步骤,如图1所示。
        信号源采集信息处理信息编码信息封装推流至服务器服务器再分发完成播放器流播放
        2.2 采集
        采集是数据流传输过程中的首要环节,它从设备采集器中获得原始数据流,并将其传输到下一个环节。视频数据采集包括两方面,即音频和视频的分别同时采集,将它们分不同的输入源和数据格式进行处理。
        1)音频采集。音频数据流的采集能以单一音频编码方式进行传输播放,又能和图像
相结合组成视频数据。前者在当前很多领域广泛应用,如QQ/语音电话、语音广播、在线电台等。音频的采集主要通过设备将环境中的模拟信号采集生成PCM编码的原始数据,然后编码压缩成各种格式的数据分发出去。
        2)图像采集。图像数据采集是指将原始图像以一组序列的方式进行排列播放,形成连续动画。在当前应用领域中,采集图像数据序列主要是通过摄像头为主的设备进行录制成YUV编码的数据序列,然后再经过其他环节分发出去。
        2.3 处理
        处理环节中可见图1所示,分为音频、视频处理,分别包含混音、降噪和声音特效等处理和美颜、水印、以及各自定义滤镜等处理。
        3 互联网直播中的几种音/视频分发方式
        互联网直播主要是让受众们身临其境的感知事件的发生过程。音/视频的分发是指发布从另外一个数据源接受的内容。而客户端类似于连接源服务器一样直连分发服务器。[4]/视频的分发方式主要分为以下几种。
        3.1 单播
        单播是将当个流从服务器发送给每个发出需求的客户端,即一对一的通讯模式。单播的好处是服务器即时响应客户端的请求,服务器针按客户端的不同请求发出不同的需求,实现个性化定制服务。[5]
        3.2 组播
        组播是一对一组的通讯模式,即加入了同一个组的主机可以接受到此组内的所有数据,网络的路由器、交换机只要向有需求者复制和转发其所需数据即可。[6]
        3.3 广播
        广播是一对所有的通讯模式,那就是意味着在IP子网中广播所有数据包,无条件地向子网内每个发出请求的主机复制并转发全部数据包,不管你是否接受。
        在现阶段互联网架构下,需要提供高数据量、高带宽、高访问量和高服务质量的前提下,CDNP2P就顺势而为了。CDNContent Delivery Network),即内容分发网络。最
大可能地规避了网络上可能出现影响数据传输速度和稳定性的各种问题,保证数据有效传输。使用户就近去搜索所需资源,解决互联网网络拥挤的状况,[7]加快网站的响应速度。P2PPeer to Peer,又可称为点对点端对端,即改变互联网现有的状态、重返非中心化,让权力于用户,使得用户在网络上的沟通变得可能、直接、共享和交互。
        4 互联网直播中的几个关键协议
        现今,相对比较成熟的直播一般采用HLSRTMP协议。
        HTTP Live StreamingHLS)是Apple连接不上网络公司研发的基于HTTP的流媒体传输协议,[8]使流媒体的直播、点播的实现成为可能。一般来说,相对于已有的网络直播协议,HLS直播的优势表现在,受众客户端不必获取一个完整的数据传输包。HLS协议在服务器端将直播信息分解成较小的文件,但这些小文件必须具备连续,时长较短等特性,只要保证客户端连续缓存下载即可,就这样循环的进行下去,只要客户端不停,就可以源源不断的得到这些新生产的文件,逐个按顺序播放,直播就这样实现了。由此可见,目前比较方便又好用的是用HTTP渐进下载方法,HTML5是直接支持这个。
        RTMPReal Time Messaging Protocol)是用来传输音/视频数据的流媒体协议,主要应用于Flash PlayerRtmp Server之间的交互,如FMSCRTMP Server等。互联网直播与点播应用也可以通过RTMP协议实现,通过FMLEFlash Media Live Encoder)推送音/视频数据至Rtmp Server,应用实现摄像头的实时直播。它是凌驾于在TCP协议之上,RTMP协议类似于一个承载了数据包的载体,这些数据可以是各种格式文件的音/视频数据,一个承载不同的途径传输网络数据包,其中的数据包都是按照一定特定大小的数据包来传输。HLS更适合跨平台,多终端,支持PC终端、Android安卓终端、IOS苹果终端、Windows Phone终端。RTMP其实就是flash的服务器,其实时性表现最为明显。如果要想实时性要求很高,比如0.5s以内,其是不错的选择。两者搭配起来使用则会适用于绝大部使用场景,crtmpserver集常使用crtmpserver作为基础原型,为网络主播端提供推送数据流服务,让受众获得拉流服务。数据流Service分为Source ManagementSource Point以及Edge Point。三者之间为层级关系。通常情况下,主体播放者通过一般主播域名服务器获得初始端的IP地址,然后再推流到Source Server。当Source Server接收到相关信息流之后,向Source Management传达该主播的数据流信息。受众最终获得唯一的上级Source Sever推送的某个流编号数据。而Source Point则是经过通信Source Management之后,才能够锁定该数据流ID的来源,然后才能获取主播传输数据的源服务器IP,最后达成信息交互。
        流媒体最大特点就是需要高速处理并发音/视频数据流。流媒体系统对服务器I/O通道吞吐率要求是非常严格的,其数据流量是非常巨大的。[9]用户端的电脑上创造一个缓冲区,提前下载服务器上生成的小文件作为缓冲,当网络实际连接的速度较播放所耗用资料速度小时,[10]App就会调用事先缓冲好的小文件,保证播放的连续性。服务器处理的数据量越大,并发连接数量也会越多。当处理资源不够时,往往会出现相应时间变慢,同时能容纳的连接数量也变的越来越少,直至系统出现故障,最终服务中断而结束。可见系统的可扩展性尤为重要。流媒体服务一般使用RTSP协议进行带宽的协商和流速的控制,通过UDP将数据流反馈给客户。实现流媒体负载均衡,达到数据分流,由不同的服务器接受相对较少服务的并发,已到达检查服务器端硬件的工作情况;服务器负载则对应用服务端口进行检查,一旦服务器的该应用服务端口异常则自动将访问请求转移到正常的服务器进行响应。[11]CDN缓存视频,努力尝试把更多的功能移到边缘服务器,以便能给用户更快速的体验。
        5 互联网直播网站技术的一个架构
        在图2网络架构模式中,运用RTMP协议,实现多线程并发传输的模式,减轻服务器负载。
        通过直播流的代理转发功能,实现分解因用户请求过多而带来的服务器承载压力,达到保证直播持续播放的流畅性。该方案确实对大量用户实时请求压力起到分担作用,但依然不能完全保证用户视频体验满足感。现实生活中,这些用户不能都聚集在一个地方,使用同一个设备在观看,另外其所使用的宽带供应商也存在差异,比如福建移动的用户去访问北京电信的FMS服务器来观看视频,在实际过程中,视频播放效果依然不会很流畅,用户体验感较差。分析其根本原因,运营商互联的带宽非常少,经常处于堵塞状态。由此可见,要想让用户获得满意的视频体验感,除了首要解决服务器承载压力,还要解决不同运营商之间信息通信质量的问题,而使用CDN的调度系统就能很好的解决这一问题。它是根据用户的IP以及节点的带宽和服务器负载情况,使得请求到达一个合适的节点,这样既满足了用户体验,又节省了CDN成本。