基于嵌入式WEB的视频服务器的设计

嵌入式设计应用

132人已加入

描述

1.前言

  当前的信息化时代,是一个构筑在网络基础之上的时代。基于TCP/IP协议的IP网络,像Inter-net、Intranet与Extranet等以令人惊异的不可阻挡之势发展着。而以网络为基础的数字视频监控系统是视频监控系统发展的主流,随着微处理器技术、计算机网络技术的进步,基于嵌入式WEB的网络视频监控系统逐渐得到了人们的广泛关注。

  2. 基于嵌入式WEB技术的网络视频监控系统特征及原理

  本视频服务器具有以下的一些特征。

  采用嵌入式实时操作系统和专用的硬件结构,无论是软件还是硬件都保证了嵌入式网络视频服务器比基于PC机的系统具有更高的实时性、稳定性和可靠性。可以方便的联动其他安全防范设备,如湿度、温度、烟感等报警器。本视频服务器使用MPEG-4视频压缩技术,与MJPEG和H.263等压缩方式比,具有压缩比高、码流小、图像质量好等优点,特别适合于Internet环境下的实时监控,并且可以节省存储空间。

  嵌入式WEB的网络视频监控系统的主要原理是:嵌入式视频服务器采用嵌入式实时操作系统,内置嵌入式WEB服务器,摄像机传送过来的视频信号经高效压缩芯片压缩后,通过内部总线传送到内置的WEB服务器。用户在监控端可以直接通过浏览器观看WEB服务器上的摄像机视频图像,授权用户还可以控制摄像机云台镜头的动作。本文所述的监控系统的原理图如图1所示。

  本系统由摄像机、嵌入式WEB服务器、传输网络和监控端组成。摄像机用来采集监控现场的视频。嵌入式WEB服务器是整个监控系统的核心,有硬件和软件两个部分,详细结构将在下面分别介绍。其主要功能包括:为监控端提供WEB访问页面;对监控端的访问进行有效性、安全性检查;响应监控端的请求,为监控端提供所需要的视频图像;接收监控端的控制信息,经过软硬件转换后对摄像机进行控制。每个服务器有自己的IP地址,在监控端可以通过浏览器界面访问服务器。监控端的功能则是显示现场视频,并根据需要向服务器发送视频请求以及对摄像机的控制信号。

 MPC8250

  图 1 嵌入式视频监控系统示意图

  3. 嵌入式 WEB 服务器的硬件结构

  嵌入式WEB服务器的硬件结构如图2所示。其主要由CPU芯片、MPEG-4音视频编码芯片、Flash芯片、SDRAM内存、以太网络接口、大容量硬盘组成。其中CPU采用MOTOROLA公司的PowerPC系列嵌入式通信处理器MPC8250。MPEG-4音视频编码芯片完成对从摄像头传送过来的视频数据的压缩和编码。根据网络带宽、拓扑结构以及对图像质量的要求,本系统选用基于MPEG-4标准的分层可扩展性编码方案。压缩后的视频数据根据需要,可以存储在大容量硬盘中,或者通过以太网进行网络传输。为了实现视频存储功能,需要采用大容量的硬盘。

 MPC8250

  图 2 嵌入式 WEB 服务器的硬件结构

  4. 嵌入式 WEB 服务器的软件系统

  嵌入式WEB服务器的软件设计与实现是本系统实现的关键之一,包括嵌入式操作系统与应用软件两大部分。

  4.1 嵌入式操作系统

  嵌入式操作系统是支持嵌入式系统应用的操作系统软件,是在系统实时性、硬件相关性、软件固态化等方面有着突出特点的专用操作系统。本系统采用嵌入式LINUX操作系统,它是在根据系统需要对LINUX操作系统进行小型化裁剪与实时化的基础上实现的。使用LINUX的优势在于:其操作系统的源代码是开放的,可根据需要进行定制;系统内核小,因而对硬件的要求相对要低;支持多任务多进程,能提供较好的实时性。

  4.2 应用软件

  服务器的应用软件结构如图3所示。其主要由WEB服务器、CGI程序、嵌入式数据库mSQL、视频调度与传输模块、存储管理与调度模块、摄像机控制模块等几个重要部分组成。

  4.2.1 WEB服务器与CGI程序

  WEB服务器通过HTTP协议与监控端浏览器软件进行信息交互,提供其他应用程序模块的接口以及视频数据浏览界面和摄像机控制界面。此外,它还要对监控端的访问权限进行控制,过滤监控端的请求和控制信息,处理多个监控端的请求和控制的同步和优先级问题。 本系统选择适合于嵌入式系统的Boa WEB服务器。Boa是一个单任务的HTTP服务器,支持能够实现动态WEB技术的CGI技术,源代码开放、性能高。同时服务器程序本身所占空间很小,因而十分适用于嵌入式系统。 同时,本系统采用了CGI(公用网关接口) 来实现动态WEB技术,CGI规定了WEB服务器调用其他可执行程序(CGI程序)的接口协议标准。WEB服务器通过调用CGI程序实现和浏览器的交互,也就是CGI程序接受浏览器发送给WEB服务器的信息,进行处理,将响应结果再回送给WEB服务器及浏览器。原则CGI程序可以用任何程序设计语言编写,但是用C语言编写的CGI程序具有执行速度快、安全性高等特点。

MPC8250

4.2.2嵌入式数据库mSQL

  在本系统中,用户信息的存储,用户的登录登出,视频设备参数的存储与查询,视频文件的存储与查询等,都需要一个嵌入式数据库。综合考虑,本系统使用mSQL(MiniSQL)作为本系统的后台数据库。mSQL是一款优秀的嵌入式数据库,体系结构小巧,占用系统资源少,特别适合在嵌入式Linux系统中使用。同时,mSQL提供专门的API函数,使得用C语言编写的CGI程序可以与mSQL的数据库引擎进行通信。

  4.2.3视频调度与传输模块

  视频调度与传输模块为监控端提供所需的实时视频信息,是服务器应用软件中最重要的模块。该模块根据所采取的网络传输与控制协议与监控端建立连接,监听监控端的请求;同时又根据不同的服务类型采取相应的调度策略创建视频流,然后将视频数据分组、打包,发送到监控端,并根据路由器和监控端反馈的网络状态信息进行差错处理和拥塞控制。

  视频数据的传输一般采UDP网络通讯协议,而采用UDP的IP传送方式有点播、广播和组播三种,其中组播是服务器只向特定的用户组发送一个数据包,组中的各用户可以共享这一数据包,而组外的用户却无法接收到。本系统采用IP组播方式,采用组播技术的优点有以下几点:可以让服务器承担大量客户端的视频数据播送要求;由于数据包拷贝数量和发送目的地址少,大大减少了网络中传输的数据总量,从而保证较高的服务质量;减小了视频数据流传输的带宽占用,减轻了服务器的负担。

  本系统采用的网络传输协议使用RTP/UDP/IP模型。RTP协议是一种提供端对端的实时媒体传输服务的协议,由实时传输协议RTP和实时传输控制协议RTCP两个部分组成。RTP用于实时视频数据的传输,而RTCP则用来监控实时视频数据的传输。RTP/UDP/IP的方式兼顾了视频传输的实时性与QoS保证。同时针对传输网络状况的不确定性,还可以采取一定的拥塞控制和差错控制策略。

  4.2.4存储管理与调度模块

  存储管理模块的主要功能是将压缩和编码后的视频信息根据一定的策略存储至磁盘中特定的区域,并将视频文件信息存储到嵌入式数据库中,以供检索与回放,同时响应视频调度与传输模块的请求,按照一定的磁盘调度策略和优先级顺序从磁盘中读取视频数据至内存缓冲区。对于存储管理,本系统采用等长分组存储策略,即将视频信息按照时序关系分割成若干数据单元,这些数据单元称为分组,将每个分组存储于一个大小固定的存储单元内。

  4.2.5摄像机控制模块

  摄像机控制模块主要实现对摄像机的控制。在监控端,用户通过浏览器向WEB服务器发送摄像机控制命令,该控制命令经WEB服务器接受和处理后,再通过CGI程序发送给摄像机控制模块,然后被转换成相应的对摄像机控制的硬件操作指令,从而实现对摄像机云台镜头的远程控制。

  5 结束语

  随着VOD业务的不断普及,人们对视频服务器的设计不断提出新的要求。有些问题值得密切关注。其一是,当系统突然面对大量的客户请求时,必须解决图像、声音数据流播放的高速、连续、可靠和同步的问题。这就要求视频服务器在设计时采用一定的策略来改善这方面的性能。另一方面是为了进一步提高视频服务器的服务用户数,节省视频服务器的系统资源,减轻骨干网的流量负载,可采用多播的方式把那些点播同一节目且具有相同(相近)路由的用户统一进行服务。 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分