本文来自:
http://blog.chinaunix.net/uid-23093301-id-86390.html
嵌入式视频采集系统是一个集嵌入式技术、多媒体信息、网络通讯、图形显示等多种技术为一体的综合系统。其在工业和日常生活中都有广泛的应用前景,如安全监控、视频聊天、可视电话等。稳定可靠、轻便小巧的嵌入式视频采集系统拥有广阔的市场需求。
本课题实现了一种基于ARM和嵌入式Linux的视频采集系统,主要实现了视频图像的采集、实时显示和视频数据的网络传输、压缩存储。本课题分为嵌入式端和PC端两部分。嵌入式端完成视频图像的采集,并使其在开发板上的LCD进行显示。嵌入式端利用实时传送协议RTP把视频数据传输到PC端。PC端承载的功能是图像数据的接受、显示和存储。
在嵌入式端,硬件方面采用SamSung公司的S3C2440嵌入式开发板,采用TopSpeed公司的USB摄像头作为视频采集设备,软件方面采用嵌入式Linux操作系统。本课题移植了Linux 2.6.30.4版本,并在其基础上移植了符合USB Video Class标准协议的通用USB摄像头驱动程序。嵌入式端基于Video For Linux的视频编程接口,实现了MJPEG编码的视频流的采集。MiniGUI是开源Linux图形用户界面支持系统,拥有一组轻量级的窗口和图形设备接口,本课题基于MiniGUI将视频数据显示在LCD上。在图像数据的传输部分,采用了实时传送协议RTP,既保证了网络传输效率,又保证了视频实时性。并且,嵌入端采集、显示、RTP传输并行运行,提高了嵌入式端的运行性能。
PC端利用实时传送协议RTP接收嵌入式端发送的视频数据。MJPEG格式的视频图像首先将颜 {MOD}空间转换为YUV420P格式,再实时显示到屏幕上。SDL是一个自由的跨平台的多媒体开发包,非常适合播放器等软件的开发。本课题利用SDL实视频图像的实时显示。为了方便回放监控录像,本课题基于FFMPEG音视频编码库将视频图像进行压缩保存。图像压缩采用H264编码,无图像质量损失下保持了很高的压缩比。PC端提供一个环形缓冲区用以缓存网络接收的视频数据。RTP接收、SDL显示、FFMPEG压缩存储拥有单独的处理线程,它们互斥的访问视频数据缓冲区,并行运行,大大提高了工作效率。
本课题基于嵌入式Linux的视频采集系统拥有体积小、成本低、稳定性高的优点,视频采集和显示具有很高的实时特性,并且压缩保存的视频数据为监控者回放录像提供了方便。