基于NDIS的气象视频会商导播软件的设计

2016-11-19 12:18陈晖陈杨全秋浩赵男许晖
现代农业科技 2016年4期
关键词:实时监控

陈晖 陈杨 全秋浩 赵男 许晖

摘要 目前的视频导播系统一般由视频处理装置和专用硬件切换矩阵构成,这种导播系统可靠性很差。为了解决此问题,提出了一种基于NDIS的视频软导播系统的设计。该软件系统由内核层网络驱动、应用层的指挥控制界面以及内核层与应用层之间的通信3个主要部分构成。与硬件导播系统相比,软导播系统实现了硬件通用化,布线网络化,该方法已成功应用于车载指挥控制系统中。

关键词 NDIS;视频导播;实时监控;VLC

中图分类号 TP317.1 文献标识码 A 文章编号 1007-5739(2016)04-0339-03

Design of Meteorological Video TV Consultation Soft Direction System Based on NDIS

CHEN Hui CHEN Yang QUAN Qiu-hao ZHAO Nan XU Hui

(Jilin Province Meteordogical Information Network Center,Changchun Jilin 130062)

Abstract The current video director system is made up by video processing equipment and hardware switch matrix,its reliability is poor.In order to solve this problem,this paper proposed NDIS-based design of video soft direction system.The system was made of kernel network drive,command control interface in application layer and communication of kernel and application layer.Compared with hardware director system,this system had realized hardware universal,wiring network,and this method had been successfully deployed in command and control system of Vehicle.

Key words NDIS;video director;real time monitoring;VLC

在日常的氣象预报业务当中,天气会商是提高天气预报业务准确性的重要一环,无论是省市县的会商还是国家和各省级的会商都是气象员做出天气预报的重要依凭。随着网络传输技术的快速发展,以及硬件视频厂商技术的巨大进步,视频会商系统在气象业务的使用范围越来越广泛。视频会商包括上行的与国家气象局的会商系统,下行的与地区和县级的会商系统。远程可视化广泛应用于气象预报的会商系统当中。目前的气象系统当中主要使用华为研发的远程视频会商系统,视频会商系统由视频切换矩阵和视频终端构成[1-2]。这种基于专用硬件的导播系统存在的问题是较为复杂的模拟信号布线带来可靠性方面的隐患,地区和县级布线十分麻烦。最重要的是一整套会商系统造价昂贵,少则几十万,昂贵的甚至达到几百万,但同时这也是软导播系统的研发动机。

相对与传统的气象视频会商系统而言,软件的导播系统是一个抛弃了负责布线和视频切换矩阵的新型导播系统。硬件设备由音视频编解码器取而代之。运行在传统PC当中,视频流主要通过气象内网系统进行传输,无需通过模拟视频电缆。软件的气象视频会商系统相比传统的会商系统减少布线,依赖于网络传输。并且只要有计算机的任何地点都可以参与到会商当中,而不是像传统会商系统一样要准备专门的会议室,限制了会商的灵活性。

基于NDIS的气象视频会商软导播系统是运行在windows环境的PC中和网络环境中的一种气象视频会商软件。以Windows平台的内核驱动层的NDIS框架为基础。利用VS2010开发应用层的监控界面和导播窗口的系统软件。通过接收来自音视频编码器的H.264格式的视频流。在吉林省气象视频会商导播软件中解码和显示。操作员利用该款软件实现气象会商的全程导播功能。接收方即可用通过通用计算机的开源软件VLC进行视频接收,也可以通过视频解码器加上视频显示器实现人数规模较大的视频接收,吉林省气象视频会商导播软件它是气象视频会商系统的核心[3-4]。

1 总体设计

考虑到导播服务器的性能和气象内网的带宽参数,一台导播服务器可以实现接收16路视频流派发8路视频流的功能。会商系统还支持多台服务器的协同导播功能。当几台导播服务器一起运行会商导播软件时,可以通过多机协同机制实现更多路的视频会商的导播,可以实现更多路视频的接收与派发。即接收16×N路,导播8×N路视频流,其中N为导播服务器的个数。

在气象视频会商系统的设计当中,它的视频输入端为音视频采集设备和可以将音视频流编码为多播视频流的音视频编码器。它的视频输出端由可以将音视频流解码的音视频解码器和通过RCA接口进行播放的显示器或者可以接收多播音视频流的软件组成,其整体结构如图1所示。

2 系统环境

2.1 具有组播功能的网络交换机

该交换机为组播视频流在网络环境中的传输提供设备支持,是气象视频会商系统的网络传输心脏。

2.2 气象视频会商系统导播服务器

安装有NDIS驱动软件的计算机服务器,当然系统也必须是微软的WINDOWS操作系统(可以是Windows XP或者Windows7)。该服务器是会商操作员的操作平台。所有输入视频流的监控和整个会商系统的导播在这里实现,即运行气象视频会商系统的导播主机。

2.3 视频接收端(组播视频客户端)

该端是气象视频会商系统的末端。

视频接收端有2种组成方式:一是有具有播放组播形式的H.264格式视频流的Windows视频播放软件,例如开源的VLC软件。二是由音视频解码器和视频显示器构成。

3 导播软件的系统结构

前端和后端都是可以购买的硬件设备,该会商系统的核心是气象视频会商系统的导播软件。导播软件的设计基于Windows系统平台的NDIS框架。整个系统的设计分为3个部分,第一部分是NDIS网络内核模块的开发,包括数据包的截获,解析和封装还有数据包报文的发送及提供给用户层开发使用的接口。第二部分是应用层的气象视频会商导播界面的开发设计,通过MFC对视频会商导播界面进行设计,包括视频接收源的地址信息和视频导播目的地的导播信息,还包括音视频的解码部分的开发。第三部分是内核层与应用层之间的通信,由于在应用层涉及到对音视频进行界面操作的设计,而且应用层不能对内核层进行直接操作,所以要将用户空间的用户口令传达到内核空间,因此要用到内核层与应用层之间的通信。况且在多机协调的过程中也涉及到内核与用户层之间的通信,以实现多台计算机可靠并有效地进行工作。NDIS驱动模块在操作系统中的位置如图2所示。

4 系统实现

4.1 内核层网络驱动设计

NDIS内核数据包处理流程可以分为五部分:网络数据包拆包模块、网络数据包过滤模块、网络地址转换模块(NAT)、NDIS模块重新封装数据包、其他高级功能模块。NDIS网络导播功能实现流程如图3所示。

过滤规则是整个会商导播系统在NDIS驱动内核层最重要的数据结构。整个导播过程都在内核层维护着一张过滤规则表。当出现多个过滤规则时,通过内核层的指针将规则表连接起来,形成过滤规则链。数据包在规则表中记录下过滤规则之后,继续在内核中传输。当数据包按规则传输结束后会清楚过滤规则,只需要获得头指针的地址就可以通过遍历清除掉所有规则。过滤规则数据结构如下:

过滤规则制定之后,内核层要选择合适的网卡进行网络传输。网卡的选择要结合应用层的程序进行选择。首先获取到所有的网卡设备然后传输到应用层的ListBox,应用层用户选择合适的网卡,再将选用的网卡设备传输到内核层。内核根据应用层传递的信息,选择发送数据包所使用的网卡。

网络设备处理流程如下:

服务器网络设备描述信息的枚举,将设备索引号于网卡设备名称列于应用层软件。

用户选择合适的网卡设备。

网络设备索引号从应用层传输到内核层,将对应的网卡设备设置到相应的状态。

内核层发送报文时重新封装报文头,将网络设备索引号封装到其中,继续数据流程。

选择完网络设备之后,接下来是数据包的发送。

数据到达协议驱动时,调用NdisSend/NdisSendPackets请求NDIS发送数据包,紧接着NDIS会调用中间层驱动的MiniPortSend/MiniPortSendPacket,在这2个函数中可以对数据包做必要的分析处理,然后中间层驱动再次调用NdisSend/NdisSendPackets请求NDIS发送数据包。NDIS将调用下层的小端口驱动的MiniPortSend函数或者MiniPortSendPacket函数,它们通过NDIS的接口函数操作网络接口卡设备将数据包传输出去。NdisSend函数原型如下:

4.2 多机协调机制

因为不同的时间系统视频播放和导播方案可能会不同,對于内核空间来说,系统的导播方案是不断变换的。这样势必要将应用层制定的导播方案传递到内核层,因此内核空间与用户空间之间的通信就成为本系统必不可少的一个环节。

在Windows系统中多台主机共同维护一张多机协调规则表,每当增加一路视频导播时就在多机协调规则表中增加一路,多机协调规则表记录视频源的组播IP地址和对应的转发的组播IP地址。这个规则可以保证多个导播员更好地协调工作。

4.3 系统程序界面设计

气象会商导播系统的操作平台也就是软件的系统UI界面采用MFC进行开发,并且结合开源软件VLC提供的统一的设备开发接口API完成了开发。开发难度主要集中在对VLC接口的使用。因为VLC接口的开发经验并不多,消化接口文档在整个开发过程占据了大部分时间。VLC本身有多组播视频流进行解析的成熟接口也有对H.264进行解码的成熟接口。因为这些大大减少了导播软件的界面开发难度。

VLC在开源的视频播放器当中是使用最广泛的一款,以C++语言进行的开发,封装了多种音视频传输和编解码底层视频库,支持多种格式的视频编码和组播视频的编码和解码。并且支持多平台开发。VLC的API文档完备,接口友好,非常便于程序开发者使用。VLC的源码使用的模块机制,非常易于VLC的功能扩展和程序维护。VLC的这个特点正适合本系统应用的视频播放接口。

5 结语

本系统的设计在Windows平台下利用NDIS内核驱动框架实现了气象视频会商系统的导播软件的设计。目前支持H.264编码格式的视频流的视频播放。应用层采用MFC进行导播界面的开发,无论是对视频的播放还是在会商过程中的音视频导播都达到了很好的效果,兼顾了实时性和清晰度。

6 参考文献

[1] 韩春梅.基于MAX456的视频切换矩阵设计[J].电视技术,2004(3):91-93.HAN Chun-mei .Design of a Video Switch Matrix Based on MAX456[J].TV Engineering,2004,(3):91-93.(in Chinese)

[2] 胡安磊,周大水,李大兴.Linux中Netfilter / Iptables的应用研究[J].计算机应用与软件,2004,21(10):56-66.HU An-lei,ZHOU Da-shui,LI Da-xing.Application Research of Netfilter/Iptables in Linux[J].Computer Applications and Software,2004,21(10):56-66.(in Chinese)

[3] 张建.服务器虚拟化在代理服务器上的应用[J].计算机系统应用,2011,20(7):146-149.ZHANG Jian.Server Virtualization Used on the Proxy Server[J].ComputerSystems&Applications,2011,20(7):146-149.

[4] 周莉,柯健,顾小晶.Netlink套接字在Linux系统通信中的应用研究[J].计算机与现代化,2007(3):109-111.ZHOU Li,KE Jian,GU Xiao-jing.Research on Application of Netlink Socket in Linux System Communication[J].Computer and Modernization,2007(3):109-111.(in Chinese)

猜你喜欢
实时监控
面向家庭的服务型机器人的设计与实现
智能可调节动作识别型节能风扇的设计
智能投料过程动态监控系统研发及应用
基于无线传感器网络的绿色蔬菜生长环境监控系统设计与实现
一种煤矿瓦斯检测系统的设计与实现
一种基于物联网的电梯闸瓦磨耗实时监测系统的设计
海铁联运场站协同应用系统的研发和应用
基于ZigBee无线传感网络的综合环境实时监控系统
基于视觉传感的动态高危区域检测与系统构建
物联网技术在钻井实时监控系统中的应用