叶佳宁, 何 霆
(广东省地震局, 广州 510070)
互联网的迅猛发展促进了流媒体技术的成长,自1995年推出的第一个互联网流媒体播放器以来, 流媒体应用有了爆炸性的增长[1], 现已广泛应用于网上新闻发布、 在线直播、 网络广告、 远程教育、 实时视频会议等[2]。 目前, 地震科普的宣传还存在以下问题: ①地震科普宣传还处在传统模式。 无论是媒体报道、 书籍还是科普馆内的展板展示, 都是以一种静态的方式让人们了解地震知识; ②我国是地震多发的国家, 近年来的几次大震引起了人们对地震知识的渴望, 可是由于地震科普宣传的视频资料往往在电视播出, 难于留档认真学习; ③互联网上的地震科普视频宣传资料往往挂在某个普通Web 服务器的上面, 当多个客户端对视频进行浏览时, 服务器通常不堪重负而造成死机的情况时有发生。 因此, 将流媒体技术应用于地震知识的科普宣传的中, 不但弥补了以静态图片和文字方式传播地震知识存在的不足,而且有效地满足了更多客户端浏览视频资料的需求, 对地震知识的科普宣传具有重要的实际意义。
流媒体是指在互联网及企业网上使用流式传输技术的连续时基媒体, 其在播放前无需下载整个文件, 仅需将开始部分内容存入内存, 其他数据流随时传送随时播放, 其关键技术就是流式传输。 流媒体传输系统主要由编码工具、 流媒体数据资源、 流媒体服务器、 传输网络、 客户端播放器等构成, 具有启动延时短、 体积小、 便于存储、对带宽要求不高、 可双向交流、 有效保证节目的版权等优点[3]。
视频点播(Video on Demand,VOD)是基于流媒体技术的一种应用, 是指根据用户的要求播放视频, 主要包括多媒体数据压缩技术、 数据库技术和网络技术等。 VOD 是一种受用户控制的视频分配业务, 使用户可交互地访问远端服务器所存储的丰富节目源, 可极大增加用户在信息服务提供中的主动性[4]。
视频点播系统由三个部分组成: 服务端系统、网络系统和客户端系统。 服务端系统主要完成以下几个功能: 媒体数据检索、 信息流的实时传输以及实现对用户实时请求的处理、 访问许可控制、VCR(Video Cassette Recorder)功能(如,快进、暂停、重绕等)的模拟。 网络系统主要负责媒体流的传输。 客户端系统即提供与服务端系统相应的播放器, 让媒体流能顺利的输出播放[5]。
视频的直播技术也是基于流媒体技术的应用之一。 国内现有的" 网络视频直播" 大致分两类,一是在网上提供电视信号的观看, 例如各类体育比赛和文艺活动的直播, 这类直播原理是将电视(模拟)信号通过采集, 转换为数字信号输入电脑,实时上传网站供人观看, 相当于 “网络电视”; 另一类则是真正意义上的 “网络直播”: 在现场架设独立的信号采集设备(音频+视频)导入导播端(导播设备或平台), 再通过网络上传至服务器, 发布至网址供人观看。 这类网络直播较前者的最大区别就在于直播的自主性: 独立可控的音视频采集,完全不同于转播电视信号的单一收看[6]。
视频直播技术与视频点播系统技术的区别在于: 视频直播对视频源的事实的观看, 没有交互可言, 相当于视频的广播, 而视频点播是对以往的视频源进行回放, 可以满足客户端的互动, 并强调信息的娱乐性和个性化。
本视频点播系统主要用户是所有对地震知识感兴趣的公众, 因此该视频点播系统采B/S 架构,主要由流媒体服务器、 Web 服务器、 数据库服务器、 Web 浏览器以及录制电视软件五部分构成。其中流媒体服务器是视频点播系统的核心, 主要响应用户点播请求、 提供稳定的视频流、 响应用户在点播过程中的交互, 并满足多用户点播请求等; Web 服务器的主要功能是在B/S 框架下为用户提供一个交互手段; 数据库服务器用来存储视频数据信息, 包括视频的内容与路径; Web 浏览器的主要功能是在其中嵌入一个流媒体播放器,满足能上网即可点播观看。 录制电视软件软件是将电视播出的地震科普宣传片进行录制, 并以flv格式保存, 以便公众点播。
视频点播系统主要分为三个模块: 电视录制模块、 视频点播模块、 视频管理模块, 如图1 所示。 电视录制模块依赖于视频直播技术, 视频点播模块依赖于视频点播技术, 而视频管理模块依赖于数据库平台。 每个模块独立存在, 最终形成基于流媒体技术的地震科普视频点播系统。
图1 系统模块图Fig.1 System Block Chart
视频点播系统工作原理为[7]: 用户使用Web 浏览器访问Web 服务器, 由Web 服务器查询数据库获取被点播视频的统一资源定位符(URL), 然后启动流媒体播放器按照获取的URL 发起请求, 流媒体服务器接受请求并发送流媒体数据, 最后在Web 浏览器端的流媒体播放器上进行播放, 如图2 所示[7]。
图2 系统流程图Fig.2 System flowchart
Flash Media Server(FMS)是Adobe( Macromedia)公司推出的开发流媒体的服务器软件, 拥有独特的可编程流媒体环境, 包括丰富的应用程序接口(API)和服务器组件, 可在大规模部署环境下提供录制和实况直播, 如视频点播、 实况网络广播、播客、 视频/音频聊天等应用[7]。
FMS 的功能平台包含了server 端(存放服务端脚本文件和其他资源)和client 端( SWF 文件), client端 与server 端 通 过 RTMP(Real -Time Message Protocol)协议相互通信[8]; server 端主要负责数据的传输, 由client 端发送请求, server 端执行数据查询和计算并返回结果值, 通常需要保持长时间的连接。 FMS 技术架构模式如图2 所示, Web 服务器通过HTTP 协议发布嵌入了交互式Flash 动画文件(SWF 文件)的网页, SWF 文件作为客户端程序通过RTMP 协议与FMS 服务器进行通信, 实时获取以Flash 视频格式发布的多媒体数据流, 成为net-work stream 即网络流, 其他用户也可以同时连接到相同的FMS 接收信息、 更新数据等[8]。
FMS 集成了Flash 多媒体交互性及实时数据流的特色, 可以通过网络存储录制下来的音频、 视频, 也可以共享数据对象, 并将这些音频、 视频和共享数据对象传递给多个客户端, 实现实时同步共享, 相比传统的基于Web 的网络教学系统来说更具备良好的使用性[8]。
录制音视频的功能是针对电视播出的视频进行录制。 从连接电视的机顶盒上获取电视的音视频流, 利用视频采集卡Syntek STK1150 将其从模拟信号转换为数字信号, 用ffmpeg 进行格式转换,同时将转换后的数据发送到流媒体服务器上。 客户端通过RTMP 协议登录到流媒体服务器上对视频进行录制, 并将文件保存在客户端的本地, 录制的数据流被保存为Flash Video(FLV)格式, 并最终上传到流媒体服务器的点播路径下, 而在数据库中保留视频信息。 具体流程如图3 所示。
图3 电视录制模块流程图Fig.3 TV recording module flowchart
该模块主要是实现远程语音、 视频等多媒体信息的实时传播功能. 以FMS 和Web 平台为核心,通过flash 软件自制一个flash 播放器的swf 组件,将swf 组件插入html 网页中, 使用java script 语言对其调用, 以便播放来自Flash Media Server 的FLV 流文件。 主要代码如下:
其中xxx 代表视频信息的路径。
视频文件的管理模块包括新增、 删除、 修改视频信息三个功能。 其中新增功能就是将新的视频文件上传至流媒体服务器, 并对不是flv 格式的视频文件进行文件格式的转换, 并将具体信息保存在数据库中。 删除功能是删除数据库中的视频信息和流媒体服务上过时的视频文件。 修改功能是为防止管理人员的误操作, 可以通过此功能修改在数据库中视频的信息。
视频文件的新增功能为管理员将已录制成功的视频或者是现成的视频进行上传功能, 现有的视频格式包括: MPEG、 AVI、 MP4、 RM、 RMVB、WMV、 FLV 等主流媒体形式。 为了解决格式的差异, 在windows 系统的服务器上部署了开源的视频格式转换工具ffmpeg, 并将ffmpeg 作为一个模块,对文件格式的转换另写程序进行二次开发, 最终作为一个服务提供给上传的视频。 除FLV 格式之外, 其它视频均通过视频格式转换工具ffmpeg, 以异步方式的系统调用, 将上传的各种视频格式转换为FLV 格式视频保存在流媒体服务器的点播路径下, 并抽取该影片的缩略图作为视频的显示信息, 然后将此信息保存于数据库中。 利用c# 开发的上传视频转换为FLV 格式的主要代码如下:
{ \ 其中Srcfile 为被转换的文件, Exportfile 为转换后的文件, WAndH 转换后的高宽设置
删除功能为视频管理员提供删除视频及视频信息的功能。 具体代码如下:
修改功能为视频管理员提供修改视频信息的功能。 具体代码如下:
视频点播系统现在已在内网进行测试, 当客户端由浏览器向Web 服务器发送请求申请观看某个地震科普视频时, 由Web 服务器通过视频id 向数据库查询视频在流媒体服务器上的地址, 最终由流媒体服务器向客户端分发数据包, 完成整个视频播放流程。 图4 为视频播放的画面。
图4 地震科普视频在浏览器中播放图Fig.4 The chart of earthquake science video playback in the browser
本文所设计的地震科普视频点播系统, 通过互联网的平台向公众普及地震科普知识。 首先,利用视频为公众提供了有别于传统模式的地震科普宣传; 其次, 对电视播出的地震科普节目进行录制, 方便公众进一步查阅学习。 再次, 通过流媒体技术, 能够满足更多的用户需求。 但是, 本系统仍存在不足之处: 第一, 未对科普视频进行分类; 第二, 对于电视节目的录制, 通常要事先对着电视选好频道后, 才可在客户端进行录制,如果在客户端存在软遥控, 则可在客户端进行选择频道进行录制。 这些不足之处将在后续的开发研究工作中逐步完善。
[1] 周小文. 流媒体技术应用与发展趋势探讨[J]. 新闻知识,2007(9): 80-81.
[2] 张艳丽, 李国彬. 浅谈流媒体技术及其在Internet 上的应用[J]. 电脑知识与技术, 2007(6): 1733-1745.
[3] 张国瑜. 流媒体农业科技互动平台研究[J]. 山西农业大学学报(社会科学版), 2010, 9(3): 326-328.
[4] 温春香.基于流媒体技术的视频点播系统的设计[J]. 软件导刊, 2010(5): 78-79.
[5] 百度百科. 视频点播技术[EB/OL]. [2014-05-18]. http://baike.baidu.com/view/10291.htm.
[6] 百度百科. 网络视频直播[EB/OL]. [2014-05-07]. http://baike.baidu.com/view/4880975.htm?fromTaglist.
[7] 孔令孜, 兰宗宝, 郭宇. 基于流媒体技术的农业实用技术视频点播系统的设计与实现[J]. 广东农业科学, 2013(3): 182-185.
[8] 张亚飞. NET for Flash FMS 动态网站开发手札[M]. 北京:化学工业出版社, 2010.