基于嵌入式Linux网络视频监控系统实现.docVIP

基于嵌入式Linux网络视频监控系统实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式Linux网络视频监控系统实现

基于嵌入式Linux网络视频监控系统实现   摘 要   本文针对网络视频监控设备的实际应用需求,设计了基于嵌入式Linux和ARM9的单画面视频监控系统。系统的硬件选用三星公司的S3C2440开发板,通过连接USB摄像头进行视频数据的采集。软件以嵌入式Linux的ubuntu操作系统为开发环境、选择H246算法对视频进行压缩,通过SOCKET传送回PC机上,客户端采用Qt技术实现界面并实时显示监控情况,同时以AVI格式存储以便播放历史录像。经测试,该系统能够实现实时视频监控及播放历史,且稳定性较好。   【关键词】嵌入式Linux 视频监控 ARM9 SOCKET   1 引言   随着信息化技术的不断发展,各行各业对视频监控系统的需求越来越广泛,如交通监控、家庭防盗、企业安防等各个领域。视频监控不仅能够起到事前防范的作用,而且还有事后取证的功效。   嵌入式的视频采集以其独特的优势被广泛采用。如具有较强的网络支持功能、强大的移植性、完全开放的源代码等特点。因此,本系统选择嵌入式Linux的ubuntu操作系统为开发环境,以三星公司的ARM9处理器S3C2440为核心开发板,通过建立Client/Server工作模型来实现远程视频监控。   2 系统硬件组成   本系统具有以下功能:   (1)终端能够进行视频数据的采集并传送回PC机;   (2)用户可以通过客户端软件观看监控终端采集到的视频数据;   (3)存储采集到的视频数据以便播放历史录像。   基于此,本系统的硬件功能框图如图1所示。平台以三星公司的S3C2440处理器为核心开发板。配置了64MB的NandFlash存储器和64MB 32位的SDRAM。用户将代码存储在NandFlash中,并从NandFlash启动,之后自动将代码加载到SDRAM中运行如图1。   视频数据的采集通过在USB接口上外接一个USB摄像头,将视频数据接收到核心板。开发板通过5线异步UART串口与目标系统通信,获取开发板调试信息、下载镜像文件等,波特率可达115200bps。引出JTAG接口,用来烧写BootLoader,并通过JTAG接口调试程序。同时外接一个网络芯片与主机相连,用于传送采集到的视频数据,终端接收到视频流进行转码,最终显示到客户端上。   3 系统软件实现   本系统采用模块化设计,从功能上可以划分为如图2所示四个模块:视频采集模块、编码压缩模块、网络传输模块和视频播放模块。   视频采集模块完成视频数据的采集,通过在ARM板上安装USB摄像头进行数据采集。编码压缩模块对视频数据进行编码以减少数据量。网络传输模块将压缩后的视频数据传送回客户端。视频播放模块不仅要实现实时播放监控画面,而且能够回放历史视频。   3.1 视频采集模块   视频采集模块通过调用V4L和底层设备驱动程序实现。V4L为各种视频设备提供了统一的接口,是Linux中的内核驱动程序。应用程序通过调用这些接口函数就可以对不同的设备进行控制。视频采集步骤如下:   (1)打开视频设备。使用open()函数打开所需设备并获取设备标识符。   (2)获取图像信息和设备参数信息。调用v4l_get_capability()函数获取设备参数,如是否具有捕获图像能力、每秒帧数等;通过v4l_get_picture()函数获取图像格式,如:图像大小等。   (3)内存映射。调用mmap()函数实现将设备文件的内容映射到内存空间进行读写操作。   (4)采集视频数据。调用ioctl()函数采集一帧图像并存储到内存空间。   3.2 图像压缩模块   通过摄像头采集到的图像是YUV格式的图像,数据量大,但网络带宽有限,所以要经过视频编码压缩处理后才能进行网络传输。本系统采用目前比较流行的H264编码压缩算法实现,H264压缩算法具有画面质量高、网络适应性强、压缩比高等优点,压缩率可以达到100:1,压缩后的视频数据能够实现快速传输。   3.3 网络传输模块   系统中经过压缩的视频数据需要通过网络传送到PC机上。本系统选用可靠的TCP/IP编程模式,服务器端编程步骤如下:   (1)调用socket()函数创建套接字;   (2)调用bind()函数绑定套接字与地址信息;   (3)调用listen()函数进行监听;   (4)调用accept()函数等待接收连接;   (5)接收视频帧;   (6)关闭socket。   3.4 视频播放模块   视频播放通过客户端实现,客户端将接收到的视频流进行解码,即将视频流转换到rgb空间显示。本系统利用QT技术编写界面,调用QImage将传送回来的压缩视频流显示到QLabel上实现实时播放;同时将视频流转码

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档