视频监控系统程序设计说明书1.引言1.1 编写目标本文关键说明视频监控系统具体设计和实现。本文具体介绍了系统中各个模块设计和实现细节和关键技术应用。其中,对每一个模块会有对应文字说明和相关设计步骤图给出。1.2 项目背景本项目是对本试验课程中所介绍课程综合应用。本项目关键针对 unix/linux 系统编程和基于 C++语言 GUI 程序设计--QT进行针对性训练。意在加强学生对 unix/linux 系统编程了解和应用,提升学生实践能力、编程能力和分析问题和处理问题能力。而且经过对本系统中用户端设计和实现,让学生体会和熟悉面对对象编程思想和通常方法。1.3 定义本系统 =视频监控系统本文=视频监控系统设计说明书2 总体设计2.1 需求概述本系统是基于 C/S 架构网络视频监控系统,关键由负责图形采集和传输Server 端和负责监控(显示图像)Client 端组成。本系统 Server 端是基于 Linux 系统网络服务类软件,关键由数据采集和网络服务两部分组成。数据采集部分利用 v4l2(video for linux II)对网servervideo servicedata capturedevicd configget datamove datacreate serverwait connectdata transferclientdisplayget datacreate socketconnect serverget datainit GUIload video dataupdate widgetTCP/IP络摄像头进行控制和访问而且猎取由摄像头捕捉到视频数据,然后再由网络服务部分将猎取到视频数据进行封装成 http 帧并利用 http 协议发送到用户端。因为本系统 Server 端数据发送是基于 http 协议,所以本系统用户端没有平台限制,只要支持 http1.0 以上平台就能够访问本系统服务。而且,本系统服务能够直接经过 web 浏览器访问(对 firefox 浏览器支持最好)。为了提升传输效率我们还需要进行用户端软件开发,因为对用户端没有平台要求,所在 Windows、Linux、Android、等平台全部能够实现。本文主将以 linux 为例用Qt 实现一个简易用户端软件。2.2 软件结构图 2.2.1 视频监控系统结构图3.程序描述3.1 Server::数据采集3.1.1 功效配置设备并从设备中猎取图像数据。依据设备信息利用 v4l2(video for linux II)经过 ioctl 对 USB 摄像头进行配置,打开设备抓取功效开始采集并转存数据,采集完成以后关闭设备功效,最终关闭设备。 startopen(“devicePath”, O_RDONLY)ioctl(fd, VIDIOC_QUERYCAP,& v4l2_capability)ioctl(fd, VIDIOC_S_FMT, &v4l2_format)......