图3 嵌入式 WEB 服务器的应用软件结构
3.2.2嵌入式数据库mSQL
在本系统中,用户信息的存储,用户的登录登出,视频设备参数的存储与查询,视频文件的存储与查询等,都需要一个嵌入式数据库。综合考虑,本系统使用mSQL(MiniSQL)作为本系统的后台数据库。mSQL是一款优秀的嵌入式数据库,体系结构小巧,占用系统资源少,特别适合在嵌入式Linux系统中使用。同时,mSQL提供专门的API函数,使得用C语言编写的CGI程序可以与mSQL的数据库引擎进行通信。
3.2.3视频调度与传输模块
视频调度与传输模块为监控端提供所需的实时视频信息,是服务器应用软件中最重要的模块。该模块根据所采取的网络传输与控制协议与监控端建立连接,监听监控端的请求;同时又根据不同的服务类型采取相应的调度策略创建视频流,然后将视频数据分组、打包,发送到监控端,并根据路由器和监控端反馈的网络状态信息进行差错处理和拥塞控制。
视频数据的传输一般采UDP网络通讯协议,而采用UDP的IP传送方式有点播、广播和组播三种,其中组播是服务器只向特定的用户组发送一个数据包,组中的各用户可以共享这一数据包,而组外的用户却无法接收到。本系统采用IP组播方式,采用组播技术的优点有以下几点:可以让服务器承担大量客户端的视频数据播送要求;由于数据包拷贝数量和发送目的地址少,大大减少了网络中传输的数据总量,从而保证较高的服务质量;减小了视频数据流传输的带宽占用,减轻了服务器的负担。
本系统采用的网络传输协议使用RTP/UDP/IP模型。RTP协议是一种提供端对端的实时媒体传输服务的协议,由实时传输协议RTP和实时传输控制协议RTCP两个部分组成。RTP用于实