城市监控联网平台视频播放器①

2017-10-13 14:47:09陈淑兰王建勇孟卿卿刘玉梅
计算机系统应用 2017年3期
关键词:播放器插件联网

陈淑兰, 王建勇, 孟卿卿, 董 超, 刘玉梅



城市监控联网平台视频播放器①

陈淑兰, 王建勇, 孟卿卿, 董 超, 刘玉梅

(公安部第一研究所信息技术事业部, 北京100048) (视频图像信息智能分析与共享应用技术国家工程实验室, 北京100048)

针对城市监控联网平台视频播放器进行研究, 通过分析现存视频播放器的优缺点, 提出了一种新型多功能的播放器. 该播放器是以VLC架构为基础, 结合C# ActiveX控件技术、流媒体技术实现的B/S模式视频播放器. 经实践证明, 该播放器很大程度上提高了安防工作者的工作效率, 减少了人力的浪费, 具有很好的实用价值和应用前景.

城市监控联网; 视频播放器; VLC架构; 播放器核心SDK; 播放器ActiveX

1 引言

监控技术经历了模拟监控、数字监控、网络监控三个阶段, 目前在大规模的向网络监控发展[1], 目前已日趋成熟. 网络视频监控是多媒体、计算机网络、人工智能和工业控制等技术的综合运用[2]. 因其具有简单、直观等优点, 被广泛应用于各个行业. 视频播放器作为城市监控联网平台的核心技术, 也成为监控技术、多媒体领域里非常重要的一项研究热点, 各类型的视频播放器层层涌出. 视频播放器综合计算机技术、通信技术和数字多媒体技术来处理流媒体文件[3], 通常也称之为流媒体播放器. 流媒体播放器在最近几年从最初PC端的媒体播放器发展到移动客户端的媒体播放器, 应用变得更为广泛, 技术也越来越精湛[4].

现在市场上发展比较好的商用媒体播放器主要有三种, 分别是Realnetworkers公司的Realmedia player, Microsoft公司的Windows Media player, 和Apple公司的quick time player. RealMediaplayer的出现促进了多媒体行业的形成. Windows mediaplayer是微软公司出品的一款播放器, 该软件功能多样化, 可以播放很多格式的文件, 具有丰富的可视化效果. Quick time player是苹果公司的播放器, 用来播放MOV格式的视频, 是一款拥有强大的多媒体技术的内置媒体播放器. 但以上视频播放器主要应用于非视频监控领域, 无法应用于基于GB/T 28181标准的城市视频监控领域; 另外由于监控网路环境和视频编码格式等特殊原因, 城市视频监控系统对视频播放器具有更高的要求, 因此设计一款应用于城市视频监控平台的视频播放器是十分必要的.

本文研究与设计了一款城市视频监控联网平台视频播放器, 该播放器较其他播放器具有非常强烈的行业性, 其就是针对GB/T28181标准的视频监控, 在城市监控领域中播放器的功能具有灵活性, 界面针对安防行业有较独特的设计方案, 在这些方面上是其他普通播放器无法实现的. 该视频播放器由两部份组成: 一部分是基于VLC架构的播放器核心SDK, 实现播放器核心功能, 该部分作为播放器插件开发的基础SDK库, 具有可移植的特性; 另一部分是使用C# ActiveX技术开发的播放器插件, 该插件调用播放器核心SDK, 实现媒体播放器的功能扩展以及流媒体的播放功能.

2 视频监控播放器设计原理

城市视频监控平台是摄像机、网络通信、多媒体技术结合起来的一套系统[5], 它促进了城市安防事业的发展, 城市监控联网平台系统适用于全国范围内的监控视频数据互联. 如图1所示, 是城市监控联网平台系统的流媒体子系统基本架构图.

图1 城市监控联网平台流媒体子系统基本架构图

图1 中, 城市监控联网平台流媒体系统是由视频源、城市视频监控平台、视频播放客户端三个单元组成的, 视频源可以是前端摄像机或其他监控平台采集到的视频数据, 其功能是向流媒体服务器发送视频数据; 城市视频监控平台包含有SIP消息服务器、流媒体服务器等服务器组, SIP消息服务器负责统一调度控制系统的各组成单元, 流媒体服务器是流媒体系统的核心部分, 它由一个SIP代理软件单元以及多个媒体分发软件单元构成, 负责与SIP服务器进行信令交互、接收视频源的数据以及向视频播放器客户端分发视频流数据; 视频播放器客户端是接收媒体服务器发送的视频数据的终端设备.

本文主要研究、设计和实现城市监控联网平台的视频播放器, 其主要功能包括视音频压缩数据流接收缓冲(包括本地视频文件及网络视频流)功能、视音频压缩数据封装格式解析功能、视音频数据解码功能以及视音频数据渲染输出. 本文设计视频播放器时将播放器分为两大模块分别设计: 一个模块是播放器核心SDK, 一个模块是播放器ACTIVEX插件.

2.1 播放器核心SDK设计

对于城市监控联网中的媒体播放器, 肯定离不开视音频数据接收、解复用、解码、音频和视频输出这四个主要模块, 目前比较流行的视频播放器架构包括DirectShow[6]和VLC[7]等. DirectShow架构是微软公司提供的一套在windows平台上进行流媒体处理的开发包, DirectShow使用Filter形成Graph形式, 可自由搭建想要的数据处理流程, 能够实现定制的播放器, 但是系统占用资源较多, 实时性能上要差一些; VLC架构在结构上更为紧凑, 不能够自由组合想要的处理流程, 但是实时效率更高, 系统占用率上更低[8], 因本城市监控联网要求实时性能较高、系统占用率低, 故本文以VLC架构为基本架构, 设计与开发出适合城市视频监控联网的媒体播放器.

VLC是一个全模块化结构, 拥有很多的模块, 比如access、access_filter、access_output、audio_output、codec、control、demux、mux、packetizer、stream_output、video_filter、video_output、playlist等等, 在运行视频播放过程中动态载入所需的模块. 其实质是一“播放器”, 负责处理ES、PES、PS、TS等流间的转换、传输与显示, 如城市监控联网中的实时播放采用UDP方式传输, 那么其处理过程为: PS->DEMUX->ES. 如图2所示, 是一个视频流从接收到渲染输出的一个过程.

图2 媒体流处理过程

图中显示视频播放器处理媒体流的流程包括媒体流接收、媒体流解析、媒体流解码、媒体流处理及输出四个模块, 从媒体流接收到播放过程中, 常涉及到四个线程来处理, 它们分别是解复用线程、解码线程、视频处理线程、音频处理线程[9]. 其中媒体解析模块使用解复用线程实现音频和视频的分离, 将压缩包送入相应的缓存区, 等待解码线程处理; 媒体流解码模块分别调用相应的解码器完成音频和视频的数据解码, 将解码的视音频数据送入缓冲区, 待视音频处理线程使用; 媒体流处理模块和输出模块通常作为一个整体, 在处理媒体流过程当中使用视频处理线程和音频处理线程实现视频画面的处理, 如亮度调节、对比度调节、字幕加载、音量调节等等, 最后使用输出模块渲染输出到播放终端.

本文的视频播放器是基于VLC基础架构进一步改进实现的, 且采用SIP协议作为视频播放器网络控制信令, 实现与城市监控联网平台中心媒体服务器的交互, 通过SIP协议实现向中心媒体服务器请求网络媒体流等多媒体业务, 通过RTP协议实现将媒体服务器或前端视音频采集设备的媒体数据封装推送到视频播放器客户端. 本文对VLC内部结构进行了二次封装改进, 并增加了对视频处理及DXVA2视频显示等模块, 使得设计出的视频播放器更加能够适应视频监控联网平台系统的要求.

2.2 播放器ActiveX插件设计

播放器插件是在播放器核心SDK上搭建的UI界面容器, 此界面采用2种不同的显示模式, 两者之间可以切换, 以满足不同用户、不同业务的需求.

本文设计的视频监控播放器的基本功能包括实时点播、点播停止、云台控制、历史视频回放、历史视频回放停止、本地文件播放、本地文件播放停止、播放控制、抓拍等. C# ActiveX是一个插件类应用程序, 不能够独立运行, 需要嵌入到WEB页面中, 本文将设计开发的播放器ActiveX插件嵌入到城市监控联网平台WEB服务中. WEB页面调用ActiveX控件中相应功能的函数接口, 实现了播放器插件与WEB服务的实时交互: 当用户请求实时播放一路视频时, WEB页面将界面上用户输入的对应摄像机名称、摄像机ID号、实时播放命令等内容组成XML格式的字符串通过Javascript传递给ActiveX插件, 插件内部响应模块接收到消息后解析识别该XML字符串命令, 做出相应的控制操作响应, WEB服务与ActiveX播放插件完整的交互流程如图3所示.

图3 WEB与ActiveX交互流程

其中XML字符串格式如下所示:

"+""+set_i_url.value+"

"+"00

"

它是一种传递参数的方式, WEB服务将所需参数组成XML字符串, ActiveX控件再将该XML字符串解析出参数, 识别命令参数并执行相应函数.

3 视频监控播放器实现方法

3.1 播放器核心SDK实现

城市监控联网中视频播放器的基本功能是基于VLC架构完成的, 其基本功能具有实时点播、实时点播停止、云台控制、历史视频回放、播放控制、抓拍等. 本文简单介绍实时播放、云台控制等常用功能.

云台控制主要控制球机型摄像机的旋转以调整摄像机的显示范围和焦点的远近, 其具有上、下、左、右四个方向的调整以及远距、近距2个焦点的调整控制. 停止云台控制就是停止启动触发的行为.

本文以VLC的结构为基础, 增加了对视频处理及DXVA2视频显示模块, 改进VLC的内部结构, 封装了播放器的基本功能; SIP信令模块和经过封装的媒体播放模块作为播放器核心SDK的两个部分, 被播放器核心SDK 再次封装, 这就是前面提到的二次封装改进, 如图4展示了播放器核心SDK的结构.

图4 播放器核心SDK

从图中可以看到, 播放器核心SDK外与播放器插件ActiveX有交互, 内与SIP信令和被封装的VLC基本结构有交互, 通常播放器插件ActiveX有命令操作时, 首先传递给播放器核心SDK, SDK通知SIP信令发送SIP协议, 若发送失败则不进行其他操作; 反之通知经过封装的媒体播放模块实现核心SDK的请求指令, 完成播放器插件ActiveX要求的操作.

3.2 播放器ActiveX插件实现

本文利用C#的ActiveX技术实现播放器插件, ActiveX是C#工程中的用户组件, 在用户组件中添加播放窗口、播放控制状态栏、右键菜单等内容使得播放器内容丰富、功能齐全. 如图5所示是实现的不共享状态栏的播放插件, 界面初始化具有4个播放窗口, 当鼠标移动到某一界面时, 就显示当前窗口的状态栏, 鼠标移出播放窗口状态栏隐藏, 画面铺满播放窗口; 当右击鼠标时, 弹出对应窗口的菜单, 该菜单具有播放控制功能、播放界面是否全屏显示等操作.

图5 不共享状态栏播放器

图6 共享状态栏播放器

图6是实现的共享状态栏播放器, 在状态栏上具有播放窗口个数以及排列方式的设置, 可在状态栏右边的按钮里选择布局方式, 状态栏上其他按钮实现了播放历史视频的播放控制功能, 比如暂停、继续、前进、倒退、单帧等, 还可以显示实时播放时摄像机的ID号、音视频码率、视频帧率、网络丢包率等信息, 这种直观的方式能够为用户带来工作上的轻松和方便.

4 视频监控播放器测试结果分析

本文基于VLC架构进行封装与改进, 研究设计了一款城市监控联网平台视频播放器, 实现了城市视频监控联网平台流媒体客户端实时视频播放等功能. 该视频播放器可以实现多路监控画面显示以及摄像头云台控制等功能, 让用户更方便的进行监控操作.

有鉴于此,20世纪二三十年代,一些城市知识分子,人称乡村建设派,曾在河北定县、山东邹平等地尝试乡村改造,推行诸如识字扫盲等社会改良举措,但在当时的历史条件下,收效甚微。1936年,吴景超就直言:

图7 播放器实时播放测试

如图7是测试实时播放功能的一个界面展示, 点播任意一路摄像机, 将摄像机的视频数据和音频数据展示出来. 首先初始化播放器核心SDK, 然后进行实时播放操作, 将实时播放需要的参数组成XML字符串传递进ActiveX控件中, 其中一路视频实时播放的XML字符串如下所示:

"

"+""+" 0";

ActiveX外部接口函数解析出该XML字符串的命令参数“RealplayStart”和其他命令参数, 根据命令参数“RealplayStart”获取当前摄像机的实时媒体流, 即把SDK句柄、播放窗口句柄、摄像机ID、本地接收端口号等命令参数传递给实时播放的函数, 实时播放函数调用播放器核心SDK, 播放器核心SDK接收实时媒体流并通过解析、解码等操作处理视频流, 最终渲染输出到视频播放器终端.

图8 播放器播放本地文件测试

图8是共享状态栏播放器测试本地播放功能的截图. 本地播放功能是利用该播放器插件播放本地机上的视频, 首先在WEB界面层组成本地播放请求的XML字符串, 传递到ActiveX插件, 该XML格式的字符串有SDK句柄、播放器窗口句柄、本地文件的完整路径名、显示比例等参数, 具体如下所示:

"

"+""+set_i_url.value+"

"+"0"

当该XML字符串传递给ActiveX控件后, 解析出命令参数“PlayFileStart”和其他命令参数, “PlayFileStart”的意思是执行读取本地文件操作, 所以将SDK句柄、播放窗口句柄、播放文件的路径、显示比例等参数传递给读取本地文件的函数, 执行命令播放本地文件.

经过实时点播和本地播放的功能测试, 视频播放器在运行过程中画面清晰流畅, 播放控制等功能完整, 界面易操作, 播放窗口的排列可以灵活组合, 播放窗口的大小可以自由控制, 这些非常人性化的界面以及操作满足了安防监控的需要, 以前的播放器具有大众性、广泛性, 在界面设计上有些死板、不具有多通道的播放界面以及针对性. 本文设计实现的播放器是具有很强的针对性, 是依据安防行业GB/T28181标准的播放器, 除了具有很强的实用性, 也有很好的扩展性, 因此本播放器具有较好的应用前景.

1 张静.视频监控系统平台中媒体播放器的设计与实现[硕士学位论文].哈尔滨:哈尔滨工程大学,2011.

2 Dimassa VD, MatSSa VI. A hybrid architecture for intelligent video surveiliance. CIHSPS 2005-IEEE International Conference on Computational Intelligence forHomeland Security and Personal Safety. Orlando, USA. 2005.

3 刘磊磊.视频监控系统流媒体播放器设计与实现[硕士学位论文].杭州:浙江大学,2013.

4 高海辉.智能移动视频监控系统的设计与实现[硕士学位论文].北京:北京工业大学,2010.

5 彭爽.智能监控系统中跨平台播放器的设计与实现[硕士学位论文].杭州:浙江大学,2014.

6 赵德杰.基于DirectShow的视频处理与网络传输技术[硕士学位论文].南京:南京航空航天大学,2006.

7 林玺磊.基于VLC的立体视频评测系统的设计与实现[学位论文].北京:北京邮电大学,2013.

8 Horton S. Open-source VLC media player hits the big time. PC World, 2009, 27 (10): 68.

9 王震,陈耀武.多媒体监控系统中实时流媒体播放器的设计与实现.计算机应用与软件,2007,24(10):112–114.

City Monitoring Networking Platform Video Player

CHEN Shu-Lan, WANG Jian-Yong, MENG Qing-Qing, DONG Chao, LIU Yu-Mei

(Department of Information Technology, First Research Institute of Ministry of Public Security of PRC, Beijing 100048, China) (National Engineering Laboratory of Intelligent Analysis of Video Image Information and Sharing Application Technology, Beijing 100048, China)

The video player of the city monitoring networking platform is researched, and a new multi-function video player is presented through analyzing the advantages and disadvantages of the existing video players. This player is a mode of Internet-based B/S video player which bases on VLC architecture, and is achieved by combining C# ActiveX control technology with streaming media technology. The practice proves that this video player greatly improves the efficiency of security, and reduces the waste of manpower, with better use value and application prospects.

city monitoring networking; video player; VLC structure; player core SDK; player ActiveX

2016-07-05;

2016-09-08

[10.15888/j.cnki.csa.005670]

猜你喜欢
播放器插件联网
“身联网”等五则
自编插件完善App Inventor与乐高机器人通信
电子制作(2019年22期)2020-01-14 03:16:34
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
电子制作(2019年9期)2019-05-30 09:41:44
Moon ACE播放器/放大器一体机
抢占物联网
通信世界(2018年27期)2018-10-16 09:02:56
MapWindowGIS插件机制及应用
播放器背板注塑模具设计
中国塑料(2015年8期)2015-10-14 01:10:55
基于Revit MEP的插件制作探讨
可再生能源与物联网
风能(2015年10期)2015-02-27 10:15:34