[国嵌攻略][172][监控主系统设计与开发]

ffmpeg是一个开源免费跨平台的视频和音频流方案,它提供了录制、转换以及流化音视频的完整解决方案。移植ffmpeg的目的主要是为了使motion能支持将捕获到的视频流转换成avi格式的视频文件进行存储。因此,我们仅需要移植ffmpeg中如下两个库,而且要在移植Motion之前进行ffmpeg的移植:

libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能。

libavcodec:用于各种类型声音/图像编解码

libavutil:包含一些公共的工具函数。

 

1.源码包解压:

tar xzf ffmpeg-0.5.1.tar.gz

2.编译、安装 ffmpeg:

2.1.进入ffmpeg-0.5.1源码目录。使用命令:

./configure --enable-memalign-hack --disable-debug --arch=arm --cross-prefix=arm-linux- --enable-shared --prefix=.../_install

其中--prefix指明生成的库和执行程序的安装目录,这里将该路径设置为ffmpeg源码目录下的_install目录。

2.2.使用命令:make,编译源码,使用命令:make install,将生成库和头文件安装到指定的_install目录下。

2.3.拷贝.../_install/lib/下共享库到开发板根文件系统的/lib目录下。

 

 

 

1.下载并解压motion

tar xzf motion-3.2.12.tar.gz

2.配置

mkdir _install

./configure --host=arm-linux --without-mysql --without-pgsql --with-ffmpeg=.../ffmpeg-0.5.1/_install --prefix=${PWD}/_install

3.编译

make

4.安装

make install

生成的程序在_install/bin/motion,配置文件在_install/etc/motion-dist.conf。复制程序和配置文件到开发板根文件系统中。

并且复制jpeg的动态库到开发板的lib目录,cp  /opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/lib/libjpeg.* .../rootfs/lib/ -rf。

在开发板根文件系统目录中创建/var/run/motion/目录,因为默认/var/run/motion/motion.pid文件将用来存放运行中的motion进程。当然也要创建motion.pid文件。

5.修改配置文件

videodevice /dev/video0   摄像头设备文件名

v4l2_palette 2   摄像头获取图像格式

width 640   图像宽度

height 480   图像高度

framerate 15   图像帧率

threshold 1500   物体移动阈值

locate on   标出移动物体

target_dir /mnt/sd   图片保存位置

on_motion_detected madplay alarm.mp3   当检测到物体移动时执行命令

webcam_maxrate 3 网页监控视频流的最大帧率。由于在局域网中应用,因此为获得更好的实时监控质量,提高了该值。

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

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

6.运行

motion –c motion-dist.conf

posted @ 2016-03-31 19:12  盛夏夜  阅读(278)  评论(0编辑  收藏  举报