移动物体监控系统(Part3)——监控主系统设计与开发
接上一篇《移动物体监控系统(Part2)——摄像头子系统开发》的项目总结,本文接着讲解:监控主系统设计与开发。
一、FFmpeg的移植
1、FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在Linux下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译。本项目中移植ffmpeg的目的主要是为了使motion能支持将捕获到的视频流转换成avi格式的视频文件进行存储。
2、接下来进行FFmpeg的移植:
(1)可以点击http://ffmpeg.org/releases/进行下载ffmpeg-0.5.1.tar.gz;
(2)在linux终端下建立一个文件project1/ Sprint3,通过samba将ffmpeg-0.5.1.tar.gz源码包放到project1/ Sprint3文件下;
(3)解压:tar xzf ffmpeg-0.5.1.tar.gz
(4)进入ffmpeg-0.5.1文件中,在该文件下建立一个“mkdir _install”文件;
(5)键入“./configure –prefix=${PWD}/_install/ –arch=arm (ffmpeg不支持--host--) --cross-prefix=arm-linux- --enable-shared”进行编译;
(6)执行“make”、“make _install”命令,
(7)将_install/lib/目录下的共享库文件拷贝到开发板根目录下;
二、motion主程序的移植
motion是一个开源的用于移动图像监控程序,是一个相当轻量级但却能够在 Linux 上运行监控摄像头的应用。它可以和任何支持 Linux 的摄像头一起工作,包括所有 V4L(Video4Linux,Linux内核中关于视频设备的API接口)网络摄像头,许多IP网络摄像头和 Axis 摄像头(摘自译者注:一个日本精工品牌)。
1、motion的移植流程
(1)在Linux终端下,将motion-3.2.12.tar.gz 源码包放到project1/ Sprint3文件下,并解压;
(2)进入motion-3.2.12文件中,在该文件下建立一个“mkdir _install”文件,键入“./configure --prefix=${PWD}/_install --host=arm-linux --without-mysql(不运行mysql库) --without-pgsql(这个也没有) --with-ffmpeg=/NFS/_install(ffmpeg的安装目录)”,进行编译;
(3)再执行“make”、“make _install”,便成功的在/_install/bin/下产生motion程序;
(4)拷贝./_install/bin/下的可执行程序motion和motion-dist.conf到开发板根文件系统的/home/rootfs/sbin目录下。键入“cp ./_install/bin/motion /home/rootfs/sbin”、“cp ./_install/etc/motion-dist.conf /home/rootfs/sbin”。
(5)在SecureCRT下,启动开发板,进入根文件系统中,找到刚才拷贝的motion-dist.conf程序,打开程序并进行修改配置,如下(加粗部分为主要设置项):
|
参数名 |
设置值 |
说明 |
|
videodevice |
/dev/video3 |
摄像头设备名称。根据自己的节点号修改 |
|
v4l2_palette |
2 |
设备调色板格式。’2’表示MJPEG。 |
|
width |
640 |
图像宽度。 |
|
height |
480 |
图像高度。 |
|
framerate |
15 |
每秒最大捕获帧数。考虑到嵌入式设备存储空间有限,这里限制为15。这样可以适当减少捕获的图像信息。 |
|
threshold(像素变化值) |
1500 |
捕获门限值。当系统检测到像素变化超过该值时触发motion事件。 |
|
locate on |
设置成on |
将移动范围使用方框来框出 |
|
target_dir |
/mnt/sd |
捕获的图像信息存储路径。 |
|
webcam_maxrate |
3 |
网页监控视频流的最大帧率。由于在局域网中应用,因此为获得更好的实时监控质量,提高了该值。 |
|
webcam_localhost |
|
限制仅本地可连接网络摄像机。取消该限制。 |
|
control_localhost |
|
限制仅本地可通过网页进行控制。取消该限制。 |
|
madplay alarm.mp3 |
当该事件产生时执行该命令,播放报警音乐 |
2、motion的运行测试
(1)在SecureCRT下,键入“motion –c /motion-dist.conf”命令,使用“ps”命令查看motion进程是否启动;
(2)如果进程已经启动,即可在/mnt/sd文件中看到“**.avi”格式的视频文件;
(3)可以尝试从开发板摄像头前,经过一下,单片机会发生报警声音;如若没有报警,请按照 声音报警子系统开发 流程重新检查与配置。
到此,《移动物体监控系统》的第三部分----监控主系统设计与开发便完成了。
接下来,进行《移动物体监控系统》的第四部分----嵌入式web服务器开发的经验分享!!!具体内容,详见我的下篇文章。
文章内容如有雷同,纯属巧合;涉及雷同的内容,作者可私聊我,我自会添上“引用”声明,感谢大家关注!
———————————————————————————————————————狂撕代码者9527
posted on 2020-08-21 18:21 Mr_Zhang2426 阅读(155) 评论(0) 收藏 举报
浙公网安备 33010602011771号