移动物体监控系统(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

  • off

限制仅本地可连接网络摄像机。取消该限制。

control_localhost

  • off

限制仅本地可通过网页进行控制。取消该限制。

  • on_motion_detected

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)    收藏  举报

导航