1、ActiveX控件直播技术
ActiveX控件技术主要基于Microsoft公司的组件对象模型(COM),用于替代早期的OCX插件技术或OLE技术,是可以在应用程序和分布式计算机环境中重复使用的组件对象集合。ActiveX控件技术作为浏览器功能扩展的高效手段,可以实现绝大部分用户自定义的功能或协议,因此基于ActiveX控件技术的流媒体直播应用可以支持几乎所有的流媒体协议,包括常见的GB/T28181协议、RTSP(Real Time Streaming Protocol)协议、RTMP协议、HLS协议、WebRTC协议以及用户自定义的私有协议等。基于ActiveX控件的流媒体直播技术虽然能够赋予应用开发者强大的自主性,但是由于安全性以及跨浏览器兼容性等问题原因,已呈现出被逐步替代的趋势。目前基于ActiveX控件的流媒体直播技术常见应用于Windows+IE浏览器环境中。
2、Flash插件直播技术
Flash插件由Macromedia公司/Adobe公司设计开发,安装于浏览器环境以支持SWF(shock wave flash)格式流媒体文件的播放渲染。同时Macromedia公司/Adobe公司设计制定了基于TCP长连接的RTMP协议用于实现网络流媒体的直播服务。基于浏览器的RTMP流媒体直播需要安装使用Flash插件,并配合搭建专用的RTMP流媒体服务器(如Adobe FMS服务器等)。Flash插件主要应用于Windows+IE/早期低版本的Chrome/Firefox等浏览器环境以及早期低版本Android操作系统的主流浏览器环境中,实现RTMP协议流媒体数据的跨浏览器直播,具有低时延以及实时性好等优点。但是高版本Android操作系统不再支持Flash插件,同时iOS操作系统自始至终原生不支持Flash插件,故Flash插件技术无法继续应用于基于移动端浏览器的流媒体直播业务。基于Flash插件的跨浏览器流媒体直播技术逐渐被HTML5技术所替代。
3、HTML5直播技术
HTML5是最新的HTML 标准,由W3C/WHATWG标准工作组提出并制定,HTML5专门为承载丰富的Web内容而设计且无需额外插件,其最大特色之一即为和
HTML5和
(1)HLS协议
HLS协议是由Apple公司提出的、用于支持音视频直播和点播的流媒体传输协议,主要用于苹果操作系统以及iOS/Android移动端浏览器环境,支持跨平台跨浏览器,通用性强。该协议采用无连接、无状态的HTTP渐进式下载方式,允许流媒体会话适应不同的数据速率。基于HLS协议的流媒体直播系统架构如图(1)所示。
图1 基于HLS协议的流媒体直播系统架构
基于HLS协议的流媒体直播系统主要包括前端视音频采集输入设备、MPEG2-TS转码服务、HTTP分发服务以及视音频播放终端等。音频采集输入设备将采集到的视音频数据编码成任意格式的媒体流并推送到MPEG2-TS转码服务;MPEG2-TS转码服务将接收到的媒体流转码为MPEG-2 TS媒体流格式,按照配置分割为MPEG2-TS文件片段序列并进行存储,同步维护M3U8索引文件;视音频播放终端不断通过HTTP短连接方式向HTTP分发服务请求MPEG2-TS文件片段序列和M3U8索引文件,HTTP分发服务按照视音频播放终端的请求对MPEG2-TS文件片段序列和M3U8索引文件进行分发。
HLS协议的MPEG-2 TS数据存储转发机制决定了其数据转发延时较大,实时性较差,难以用于对实时性要求较高的互动直播场景。
(2)WebRTC协议
WebRTC协议由WEBRTC W3C和RTCWEB IETF 两大标准组织共同制定提出, WebRTC协议是面向连接的流媒体技术代表之一,实现了基于网页的视频会议通信。WebRTC目前已被几乎所有的主流浏览器支持,包括Google Chrome以及Mozilla Firefox等PC端/移动端浏览器。WebRTC基础协议栈如图(2)所示。
图2 WebRTC基础协议栈示意图
WebRTC协议规定其流媒体数据传输采用SRTP(Secure Real-time Transport Protocol)/SRTCP(Secure Real-time Transport Control Protocol)协议,并使用经过DTLS(Datagram Transport Layer Security)协议加密后的UDP进行传输;WebRTC支持使用ICE(Interactive Connectivity Establishment)技术、STUN(Session Traversal Utilities for NAT)以及TURN(Traversal Using Relays around NAT)技术来实现建立和维持UDP端到端的连接;WebRTC协议中视频压缩支持H.264、MPEG-4以及VP8 WebM等常见编码格式,音频压缩支持G.711、AAC以及Ogg Vorbis等常见编码格式。WebRTC协议并未规定信令协议,可由应用开发者自主定义。
WebRTC协议实时性强,支持跨浏览器跨平台视音频通信,且不依赖任何第三方插件,可用于对实时性和安全性要求较高的互动直播或视频监控场景。
选自《GB/T28181协议监控视频跨浏览器直播技术》
文 | 孟卿卿 刘玉梅 王冰洋 王建勇 公安部第一研究所信息技术事业部