广东技术师范学院学报(自然科学) 2014年第1l期 Journal of Guangdong Polytechnic Normal University No.1 1,2014 基于HTML5的视频传输技术研究 黄雄 广州 510665) (广东技术师范学院计算机科学学院,广东摘 要:目前主流的视频传输技术是流媒体技术.但是视频传输过程中都需要依赖F]aSh插件,视频传 输过程更需要选择流媒体格式,或者安装播放器的客户端.HTML5的V1 deo标签能够支持WEB浏览器摆脱 F1 aSh插件的使用,并丰富浏览器端的网页应用.基于流媒体技术中的RTP,RTSP传输协议,本文构造了支 持HTML5的视频播放器.该播放器具有视频的传输、控制、离线存储和播放等功能. 关键词:HTML5;V1 deO标签;RTSP;RTP[0];视频播放器 中图分类号:TP 39 文献标识码:B 文章编号:1672—402X(2014)11—0020—06 1前言 广义上讲HTML5时,实际指的是HTML,CSS3 和Javascfipt三个技术的组合应用.它最初的目的是 为了减少浏览器对Adobe Flash、Microsoft Silverlight 格式被支持以流媒体视频来传输,并且传输容量小, 但是视频的传输的质量不高,视频的清晰度也因此 不佳.HTML5没有统一视频编码解码的技术,但随着 HTML5的发展.HTML5的视频编码解码技术能够支 持的视频格式均具备高压缩容量、图像质量高的特 性.对于网络传输带宽的要求也不高.将HTML5技术 等插件的应用。同时为了丰富浏览器端的网页应用. HTML5允许开发人员能够在WEB浏览器上开 作为基础来传输视频。摆脱Flash插件的使用将是未 来的发展趋势.本文将从HTML5的Video标签的特 性。研究和探讨利用HTML5技术在移动端、PC端实 发应用程序.让过去在PC端或者移动端才能运行的 程序能够在浏览器端运行,更重要的是,HTML5能 够统一不同平台、不同机器之间的应用开发标准,从 现视频的传输,从而替代传统流媒体的传输模式,改 善网络视频传输的状况. 而让开发的应用能够在不同的平台之间切换,能够 做到真正意义上的“Write once,l'un anywhere”. 目前尽管HTML5已经形成大致的框架和体系, 但是HTML5在一些关键领域——视频编码解码技 术方面还没有量化统一的标准.由于HTML5的跨平 2 HTML5视频编码解码技术 2.1 HTML5视频编码解码技术之争 尽管HTML5的标准因为各个浏览器开发商之 间的对立而没有制定统一的视频编码解码的技术标 准,从而使HTML5视频播放技术依然停滞不前,但 是未来在手机浏览器和PC端浏览器统一标准之后, HTML5将改变过去互联网中浏览器端视频流的播放 技术. 台的功能,支持不同平台之间的任意切换,视频流可 以跨平台地由WEB服务器端向PC端和移动端传 输.但是在传输的过程,传统的流媒体在WEB服务 器端向PC端和移动端传输的过程中,都需要解决以 下几个问题:视频格式选择问题。传输协议的选择, 视频流缓冲池的设计.以及前端视频播放器的设计 与实现.但是由于HTML5的Video、Audio标签的引 入.视频的传输和播放有望得到解决. 传统的流媒体在传输视频的过程中,选择视频 的格式必须是像FI 这样的流媒体格式,尽管FLV 无论是PC机还是移动设备的浏览器,不管引入 任何视频都需要安装Flash插件,并结合<object>和< embed>标签的使用.从而导致大多数用户都安装了 Adobe公司Flash插件.事实上,HTML5的支持者正 在推动一个开放的,不需要任何插件的视频标准,这 收稿日期:2014—06—20 作者简介:黄雄(1988一),男,湖北人,广东技术师范学院硕士研究生.专业方向:信息系统工程 第11期 黄雄:基于HTML5的视频传输技术研究 .21. 就是HTML5的新标签<Video>,它提供了一个嵌入视 频而不需要插件的私有方法. 但是解决视频播放远没有那么简单,不仅浏览 器需要理解Video标签,更需要一个编码译码器来播 放视频,所以最好的方法就是在缔造HTML5标准的 同时再开发一款支持编码解码的视频编码解码器. 并且让每一个浏览器厂商去执行. 由于目前各种各样的视频编码解码技术的存 在,各个浏览器制造商还没有统一编码解码的标准。 导致HTML5在各个浏览器上的执行标准也不一致. HTML5如果能够使用Video标签,就得在浏览器中 支持编码解码器.但是由于目前各大浏览器制造商支 持的编码解码技术要不就是不一致.要不就是没有 使用编码解码技术。导致HTML5的Video标签在引 用的过程中也没有指定某一款视频编码解码标准, 从而带来了HTML5的巨大的漏洞. 由于HTML5的标准缔造者们建议使用Ogg Theora编码译码器.但是Opera和Mozilla目前使用 的H.264编码译码器.而且也为H.264编码解码器 的专利权付费了.Google同时支持Ogg Theora编码解 码器和H.264编码解码器.微软IE6,IE7等编码解码 器均不支持.只有在IE9才支持H.264编码解码器. Google在I/O大会上发布了开源的视频封装格式 WebM和视频编码格式VP8.于是Opera、Mozilla、 Chrome表示将完全支持VP8视频编码格式,IE宣布 部分支持. 2.2 HTML5中Video标签视频格式浏览器支持 当前,Video、Audio标签支持三种视频格式: Ogg=带有Theora视频编码和Vorbis音频编码 的Ogg文件 MPEG4=带有H.264视频编码和AAC音频编 码的MPEG 4文件 WebM=带有VP8视频编码和Vorbis音频编码 的WEBM文件 表1支持HTML5的浏览器的最低版本 表1表示对于HTML5视频和音频格式的支持 的各种浏览器最低版本号.3.5+表示Firefox 3.5以上 版本的浏览器支持ogg视频音频格式.No表示该版 本的浏览器不支持该视频格式. 2.3 HTML5视频格式选择 要将服务器上的视频通过服务器端传输到 HTML5的浏览器端,必须将传输的视频文件选择合 适的传输格式,尽管已经有流媒体的传输技术作为 基础,但是现在视频文件存储的容量比较大,同时目 前的宽带传输速度仍有上限。支持视频从服务器端 传输到移动端或者PC端的HTML5端的浏览器,要 浪费大量的传输时间,如果遇到网络拥堵情况,视频 的传输甚至还会中断。另外,通常格式的视频文件还 不能按照我们设置好的传输协议进行传输,因此,对 于我们选择的视频文件的格式就很重要,想要在 HTML5的浏览器端能够解码服务器端传输过来的视 频格式,服务器需要选择合适的视频编码格式,并且 用合适的压缩算法进行编码、总的来说,让压缩的文 件满足两个要求:压缩的文件容量较小和压缩的文件 能够适应HTML5浏览器端解码播放. 由于HTML5在不同的浏览器端能够解码的标 准不一样.同时根据目前的编码压缩技术的实现程 度和难易程度,我们选择H.264.H.264最大的优势是 具有很高的数据压缩比率,所以在选择视频格式的 时候,一般选择带有H.264编码的MPEG_4视频文 件.H.264编码的MPEG一4技术在国内比较普及.同 时MPEG一4技术有以下几个优点: 1.存储空间得到节省. 2.图像质量高 3.对网络传输带宽要求不高 2.4 HTML5视频传输协议的选择 要将视频等流媒体通过服务器端传输到HTML5 服务器端.Internet上传输文件一般通用TCP协议,也 有一些视频是通过FvrP协议来传输,但是这些协议 的传输都不能实现实时的传输.在流媒体技术的发展 基础上。比较成熟的流媒体传输一般是使用在UDP 协议的基础上用RTP/RTSP协议实时传输. 尽管TCP协议在传送数据的过程中会通过数据 校验,TCP协议首先允许信息从发送方发出发送请 求到接受方.然后由接收方再向发送方发出信息确认 是否可以接收数据。发送方接受到了接收方的确认信 息之后再决定发送数据,可是如果遇到网络意外情况 如网络中断或者接收方无回应,那么数据校验将一直 处于等待状态.而UDP协议则完全不同,UDP协议不 需要任何数据校验,发送方不管接受方是否接收,直 接向接收方发送数据.可以看到.TCP协议侧重于传 .22. 黄雄:基于HTML5的视频传输技术研究 表2 Video标签的属性 属性 值 描 述 第11期 输的数据质量,而UDP协议则更侧重于传输的速 度,因此要求传输速度较高,但传输数据质量不是要 求很高的视频传输更倾向选择UDP协议.而在这里 我们选择用目前成熟UDP协议基础上RTSP协议. 2.5 HTML5离线存储 autoplay autoplay 如果出现该属性,则视频在就绪后马上播放。 controls controls height pixels 如果出现该属性,则向用户显示控件,比如播放按钮。 设置视频播放器的高度。 如 出瑚谚属性,则当媒介文件完成播放后再次开 皤放。 如果出现该属性,则视频在页面加载时进行加载, 并预备播放。如果使用“autoplay”,则忽略该属性。 要播放的视频的URL。 当经过编码的视频文件通过网络传输到HTML5 浏览器端,一般采用异步传输,同步传输就是服务器 端传到哪一步,那么HTML5播放器端就得播放到哪 loop loop preload preload sr℃ url 一步,可是对于网络传输,不稳定的网络或网络中断 都会影响播放器端播放,所以使用传输只能使用异 步传输,那就是播放的视频可能前一步传输过来的. 视频的播放与传输不是同步的,而是异步发生的. 通常情况下,编码的视频文件在UDP协议下以 数据包为单位进行异步传输.因此我们的视频文件 在传输的过程中要被分解成很多数据包.由于网络传 输的不稳定性,同时各个数据包选择的路由不同,每 个包发送的时间也不相同.所以到达浏览器端的时 间也一致,在传输的过程中,可能还会发生数据包丢 失的情况.为此,我们要采用缓存技术来校正数据包 因为传输混乱而让数据包顺序发生改变的情况.并利 用缓存技术对到达浏览器端的数据包重新进行正确 排序,从而保证视频数据能够按照正确的顺序依次 有序地播放. 由于HTML5支持离线存储。所以HTML5支持 Cache.传统流媒体在开发流媒体播放器的时候还必 须为播放器设置一个缓存的临时文件夹.利用 HTML5的Video标签,以及Javascript设置缓存路径 等就可以支持离线存储和播放. 缓存存放的数据包也必须是动态地不断地更 新,不然缓存容量就会越来越大,从而占用大量的 PC端或移动端大量的空间容量,所以缓存中的数据 包在播放完毕后需要及时被清理掉,才能让新的数 据再次存放在缓存中,这就像把数据包不断地入栈 出栈一样.保证栈的可用性.从而保证从服务器端传 来的数据文件不必占用太大的缓存空间和容量.但是 利用HTMI_5的离线存储功能,就不必去考虑清除缓 存,减少播放器的占用的内存和存储容量. 3 HTML5视频播放器的设计与实现 3.1 Video标签 Video标签含有src、poster、preload、autoplay、 loop、controls、width、height等几个属性,以及一个内 部使用的标签<source>. width pixels 设置视频播放器的宽度。 Video标签内除了可以包含<source>标签外,还 可以包含当指定的视频都不能播放时。返回的内容. <Video>标签的属性如表2所示. 3.2 HTML5视频播放器的分析 该视频传输系统的架构应该满足以下几个条件: 1.B/S的架构模式.该视频传输过程是通过WEB 浏览器向WEB视频服务器发出请求之后,WEB视 频服务器向WEB浏览器传输视频.并依靠浏览器内 部的HTML5视频编码解码器并通过Video标签提供 的视频播放器解码播放.浏览器内部的视频播放器 不属于客户端。所以必须采用B/S的架构模式. 2.HTML5视频播放器的前端界面的分析.视频播 放器的前端界面设计需要播放按钮,播放进度控制 条.音量大小控件,同时该播放器还必须具备系统的 拓展和延伸。以及系统的开放性. 3.支持HTML5播放器的WEB浏览器选择哪款 浏览器,制定统一的标准,在这里,由于系统采用的 H.264标准.所以必须要求浏览器能够支持播放MP4 格式视频文件.所以系统采用IE9作为标准,一方面 因为目前主流操作系统均为microsoft的XP,WIN7, WIN8系统.这些系统都默认安装了IE.另外一方面 是因为IE9就能够支持HTML5,IE9有支持H.264标 准的视频编码解码器.所以选择IE9就HTML5作为 视频播放器的载体和平台. 3.3 HTML5视频播放器及视频传输设计 HTML5传输过程的设计满足以下两个方面: 1.传输视频流资源的设计.HTML5视频播放器需 要能够实现对视频的传输,离线存储和缓存功能,能 够对视频流实现快进,后退暂停的功能.离线存储是 HTML5播放器中基于UDP协议基础之上最重要的 功能.要实现视频的传输,视频的传输协议选择UDP 协议。视频的传输格式选择MP4格式,传输的视频 利用UDP协议传输时,需要对传输的视频通过RTP .24. 黄 雄:基于HTML5的视频传输技术研究 第11期 媒体传输服务后,WEB浏览器与WEB服务器之间 使用HTFP/TCP交换控制信息.确定需要视频传输的 数据信息,然后通过PC端或者移动端,启动HTML5 内部的Video、Audio标签。然后通过H1TrP从WEB 服务器上检索相关信息,然后对浏览器端Video标签 初始化.这些相关信息可能包含目录信息。传输的视 频编码的类型.以及传输视频的服务器地址.然后收 到请求信息的服务器作出响应,运行实时流控制协 议RTSP,RTSP协议提供了HTML5中Video标签里 对于流的操纵播放、快进、快倒、暂停及录制等命令 的方法.WEB服务器采用RTP/UDP协议将视频数据 传输给浏览器端,一旦视频数据抵达浏览器端的 HTML5的播放器,HTML5播放器就能解码播放. 图2 HTML5数据传输流程图 ①首先客户端向服务器发出HTFP/TCP协议请 求,请求加载视频流.服务器上并将多媒体数据进行 数据编码,压缩. ②将服务器上存储的视频通过RTP协议打包. ③运行RTP/UDP协议,将打包好的数据发送出去. ④RTSP协议调整数据传输的暂停,快进,后退 功能.并将本地接收和存储的多媒体数据重新组装. ⑤将组装好的视频通过HTML5播放器解码播放. ⑥通过RTCP协议反馈回来的网络信息,调整比 特率的编码. 总之,HTML5视频传输技术,就是将我们要播放 的视频放在视频服务器上.然后通过RTP/UDP协议 将要传输的视频数据打包成为数据流,而RTSP协议 则是控制数据流快进、暂停、后退、前进功能的协议, 调整数据的传输进度.但是HTML5播放器的Video 标签也提供对视频播放的快进、暂停、后退、前进. RTSP协议提供的则是对数据流传输的控制,而 Video标签则是对视频的离线存储之后播放的控制. RTSP协议强调的是数据流的传输过程,支持对数据 的传输控制,从而调整编码视频的比特率的大小.而 Video标签则是已经传输到本地视频进行快进,暂 停,后退等方面播放的控制,主要是通过播放控制条 来控制. 5结论 尽管目前的主流视频传输技术主要是流媒体技 术,但是随着HTML5的发展.各个浏览器的厂商将 会升级出新的WEB浏览器来支持HTML5的标准, 同时随着移动平台的发展。移动平台对HTML5的支 持度也将得到提升.在建构以IE9为平台HTML5为 基础的视频传输过程中。尽管HTMI_5传输的视频只 有MP4、OGG格式,同时Video标签设置的浏览器也 不能设置全屏功能.但是这不影响HTML5构造视频 播放器替代流媒体传输视频的趋势. 在WEB浏览器端诸如IE9等利用HTML5的 Video标签可以实现WEB浏览器端嵌入视频播放 器,同时支持HTML5的IE9也有自己的视频编码解 码器.能够支持对MP4等媒体的播放.而视频的传输 则以RTSP协议和RTP协议来引导传输过程. 在本文中.基于HTMI_5的Video标签实现的 HTML5视频播放器。并基于RTP协议、RTSP协议访 问WEB视频服务器上的指定的单个MP4资源的视 频文件。实现传输播放,传输的图像质量比普通流媒 体格式图像质量要更高,验证了HTML5播放器能够 以流媒体技术中RTP协议、R P协议为基础实现视 频的传输播放.在传输的过程中,WEB浏览器端不需 要安装现有的Flash等辅助插件.减少了WEB浏览 器端对于插件的依赖性,并摆脱了传统的播放器的 C/S的架构模式.HTML5技术还能够在现有流媒体技 术之上R1P协议,RTSP协议基础之上改善网络传输 状况.提高视频在网络中的传输质量和传输效率.在 不远的将来,HTML5在视频传输领域将有更大的发 展和前途. 参考文献: 『1]Amo Bakker,Riccardo Petroeco,Michae1 Dalet,Jan Get- ber,Victor Grishchenko,Diego Rabaioli,Johan Pouwelse. Online Video using BitTotrent and HTML5 applied to Wikipedia.[J].IEEE,2010:151—152. 『2 1Antero TaivaLsaari,Karl Systa.An HTML5 Cloud Phone Plaftorm for Mobile Devices.『J].2012.IEEE SO WARE: 第11期 40-45. 黄 雄:基于HTML5的视频传输技术研究 (12):1-7. ・25・ [3]Bruce Lawson.gallery HTML5.[J]..net,august 2012,P 67 [12]郭欣.基于HTML5的通用WebIM组件的前端设计与 [4]Graeme Blackwood.Email And HTML5 Video.[J]..net. March 2011:117. 实现.[D].武汉:华中科技大学,2011. [13]李烨民.基于HTML5的前端本地化存储技术.[J].成 都大学学报.2012,f3):67—69. [5]Gary Anthes.HTML5 Leads a Web Revolution.[J]. COMMUNICATION OF THE ACM,july 2012,P 16—17. [6]John Dyer.Practiacl Cross—Browser HTML5 Audio And Video.[J].msdn magazine.2012:46-52. [14]李瑞霖,曾玉珠.基于Andro id的P2P手机高清视频 在线点播系统.[J].电脑编程技巧与维护,2010:32—37. [15]孙丹鹤,王振.基于HTML5的视频网站播控系统.[J]. 电脑知识与技术,2011(10):9517—9518. 『161张志明,柯卫.基于HTML5的视频通信云服务应用 [7]陈靖隆.基于Http Live Streaming Protocol的移动流媒 体系统设计与实现[J].2011,(6). [8]陈锋锋.基于RTSP的流媒体传输系统的应用开发[j]. 南京:南京邮电大学,2013. 技术研究.[J].专题:融合通信技术与应用,2012,(9): 31-37. [10]崔玉梅.HTML5与移动平台.[J].电脑编程技巧与维 护.2012:66—67. 『171张玉晴.HTML 5中的音频及视频元素对互联网的影 响[J].河北省科学院学报,2011,(9):106—108. [责任编辑:刘向红] [11]董雾,杨丁宁,史德年.基于HTML5技术的移动智能 终端应用及安全问题研究.[j].现代电信科技,2012 Research on Video Transmission Based on HTML5 HUANG Xiong (School of Computer Science,Guangdong Polytechnic Normal University,Guangzhou 5 1 0665) Abstract:Current mainstream video transmission technology was streaming media technology,but the video transfer process required Flash plug in,and streaming media format was selected throughout the video transmission process,and the player client needed to be setup.The video tags of HTML5 could support the using of WEB browser without the Flash plugin,and enriched WEB browser applications.In this paper,we constructed a HTML5 video player based on RTP,RTSP transport protocol,which had functions such as video transmission、control、oflfine storage and playback. Key words:HTML5;video label;RTSP;RTP;video player