基于S3C6410的无线视频监控系统设计
boot的开源性,以及多功能、灵活性强,支持多种平台的特点,使其在多种平台上得到了普遍的采用,本设计也使用U—Boot来引导系统的启动。
2.1.3 根文件系统的移植
文件系统是操作系统在磁盘上组织文件的方法,通过使用文件系统,用户可以对数据进行透明且有效地存取和访问。Linux根文件系统通常包含如图所示的目录结构:
Yaffs是第一个专门为Nandflash存储介质而设计的嵌入式文件系统,yaffs有很好的鲁棒性,对启动时间和RAM使用都做了优化,加快了文件系统的加载和访问速度。故本文用yaffs作为根文件系统。
2.1.4 一键烧写Linux
OK6410支持一键烧写,就是借助SD卡、系统映像和烧写工具,通过一系列的操作,非常迅速地烧写Linux到开发板的Nandflash中。具体步骤如下:
1)将SD卡格式化为FAT32格式,通过SD_Writer.exe将mmc.bin烧写到SD卡中;
2)将U—Boot、zImage和yaffs2文件拷贝到SD卡中;
3)将SD卡插入开发板,拨动开发板的拨码开关,设置为SD卡启动;
4)设置DNW串口,给开发板上电,等待5分钟左右即可;
5)断电,将拨码开关设置为Nandflash启动,重新启动电源,便完成系统烧写。
2.2 Mjpg—streamer移植
Mjpg—streamer是一个视频流应用软件,使用V4L2(Video4 Linux 2)的接口,通过文件或HTTP方式访问linux—UVC兼容摄像头。视频采集功能通过调用mmap()函数将视频采集设备映射到系统内存中来实现,取代了传统的直接读取用户空间设备的方式,绕过了内核缓冲区,加快了视频数据的处理速度,提高了实时性。
Mjpg—streamer支持使用摄像头内的DSP硬件压缩功能付出少量硬件压缩时的电源开销,减少了CPU的负荷,减少带宽的占用,特别适用于嵌入式设备。
MJpg—streamer采用模块化的设计方法,以功能块,即plug—in(组件)为单位进行描述。Mjpg—streamer的工作就是将其中的一个输入组件和多个输出组件绑定在一起,所有的功能都是通过它的各个组件完成的。用户可以选择需要的模块,并进行必要修改,以完成所需功能。体系结构如图2所示。
插件最主要且最常用的组件是input—uvc输入组件和output—http输出组件。其他组件包括input—control、input_file、input_test picture、input_gspcavl、output_autofocus、output_file、out_viewer,如图3所示。
2.2. 1 input_uvc输入组件
Input_uvc组件的主要功能是获取摄像头拍摄的图像并将其压缩编码,共包括5个组件接口函数,这些组件接口函数是各个组件提供给外部使用的接口。相关函数的定义可查看input_uvc.c文件。
Output_http输出插件是功能齐全的HTTP 1.0的web服务器,通过输入插件获取的USB摄像头图像数据处理之后以流媒体的形式输出,并可为设置用户名和密码,最终在其客户端浏览器显示。
2.2.2 mjpg—streamer视频服务器的移植
Mjpg—streamer的移植需要JPEG库的支持,所以首先需要移植JPEG库到开发板。从http://www.ijg.org/files/下载jpeg源码包,解压缩后进入其目录,在源码包目录执行./configureCC=arm-linux-gec-host=arm-unknown-linux-prefix=/opt/linux/jpeg-enable-shared-enable-static命令配置其交叉编译器和编译后安装的目录,然后执行make命令编译和makeinstall命令安装,最后将jpeg目录下生成的库文件libjpeg.so.9拷贝到开发板根目录下的lib文件夹中,即完成jpeg库的移植。
通过sourceforge网站下载mjpg-streamer源码包。修改input_uvc目录下的Makefile文件,以其满足编译要求。然后执行make CC=arm-linux-gcc命令进行编译。在开发板建立mjpg安装目录,将其源码目录中的.so为后缀的共享库文件和start.sh文件及文件夹WWW拷贝到其中,同时复制编译后目标文件路径下的可执行文件mjpg_streamer到开发板根目录的bin文件夹中,至此整个移植过程完毕。最后执行./ mjpg_streamer-i“mjpg/input_uvc.so-y-d/dev/video2”-o“/mjpg/output_http.so-w/mjpg/www”命令以开启视频服务器。
3 系统测试及性能分析
本文采用飞凌公司的ARM11开发板进行实验,通过烧写并运行应用程序,可在远程PC机上看到视频监控效果。在浏览器端输入服务器端的IP地址访问目标服务器,即输入http://10.17.133.88:8080/?action=stream,视频监控效果如图4所示。从监控画面可以看出,接收到的监控画面比较清晰,反映出通过Mjpg-streamer服务器进行无线传输的图像画面质量较好,达到了无线传输的功能。
通过表1中两种方法进行稳定性测试,从测试效果可以看出,在浏览器端显示
嵌入式Linux 视频监控 无线传输 Mjpg―streamer 相关文章:
- 嵌入式Linux技术在工业控制网络中的应用(10-30)
- 基于嵌入式Linux的组态软件实时数据库的设计(02-01)
- 基于ARM+DSP的嵌入式Linux数控系统设计(11-18)
- 基于嵌入式Linux的细胞特征提取算法设计(11-19)
- 基于S3C2410的嵌入式Linux系统构建(03-02)
- 嵌入式Linux网络编程之:网络基础编程(08-13)