首页 > 代码库 > 远程视频监控之应用篇(环境搭建)

远程视频监控之应用篇(环境搭建)

        转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38515423


        这篇主要是讲远程视频监控的环境搭建,中间会设计到网络搭建,也会涉及到一些应用和库的移植。

一.配置内核

        1.支持UVC(USB摄像头)

make menuconfig
   <*> Multimedia support  --->
       <*>   Video For Linux
       [*]   Video capture adapters (NEW)  --->
              [*]   V4L USB devices (NEW)  --->
                   <*>   USB Video Class (UVC)
        2.支持无线网卡(Atheros AR9271芯片

配置:
-> Networking suppor
  -> Wireless
    <*>   cfg80211 - wireless configuration API
    <*>   Generic IEEE 802.11 Networking Stack (mac80211)
-> Device Drivers
  -> Network device support
    -> Wireless LAN
      -> Atheros Wireless Cards
        <*>   Atheros HTC based wireless cards support    

         3.固件支持

             把固件htc_9271.fw(可以去网上找,我也会给大家提供)放到单板/lib/firmware


二.移植wpa_supplicant

     我们要用无线网卡连接上路由啊,所以需要一个WLAN的管理工具,用于设置登陆密码等。
        1. 先编译它的依赖libopenssl
              tar xzf openssl-1.0.1d.tar.gz
              cd openssl-1.0.1d/
              ./config shared no-asm --prefix=$PWD/tmp
              修改Makefile:
              CC= arm-linux-gcc
              AR= arm-linux-ar $(ARFLAGS) r
              RANLIB= arm-linux-ranlib
              NM= arm-linux-nm
              MAKEDEPPROG= arm-linux-gcc

              make
              make install
              安装:
              把编译出来的头文件应该放入:
              /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

              把编译出来的库文件应该放入:
              /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

              把编译出来的库文件应该放入NFS文件系统的lib目录:
              /work/nfs_root/fs_mini_mdev_new/lib


       2. 要有一个配置文件.config
              tar xzf wpa_supplicant-2.0.tar.gz
              cd wpa_supplicant-2.0/wpa_supplicant/
              cp defconfig .config
              修改.config加上一行: CONFIG_LIBNL32=y
              修改Makefile:
              CC=arm-linux-gcc
 
              make
              make DESTDIR=$PWD/tmp install

             之后把编译出来的应用拷贝到nfs文件系统的bin目录
       3.使用:
             mkdir -p /var/run/wpa_supplicant
              vi wpa_wpa2.conf                      (写一个配置文件)
配置文件:适用于 wpa_wpa2
ctrl_interface=/var/run/wpa_supplicant

network={
        ssid="test"                                 
        psk="xiaojin123"
}

做完以上步骤,插上你USB网卡

wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0
wpa_cli -iwlan0 status  // 查看状态
ifconfig wlan0 192.168.1.X
ping 192.168.1.1       

如果能ping的通,证明网卡已经连接上了,如果ping不通,证明还有问题,仔细检查上步骤。(测试的时候确保有线网卡和无线网卡不在一个网段)


三.开机自启动应用程序

       我们开启开发板的时候要开发板自动启动应用程序,配置IP等等,所以我写了个脚本

首先修改  /etc/init.d# vi rcS

mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
insmod /wvm/pwm/wvm_pwm.ko
insmod /wvm/led/wvm_led.ko
insmod /wvm/button/wvm_buttons.ko
insmod /ath9k_hw.ko
insmod /ath9k_common.ko
insmod /ath9k_htc.ko

然后修改  /etc# vi mdev.conf

wlan0 0:0 777 * /sbin/auto_wifi.sh

再然后修改 sbin# vi auto_wifi.sh

#!/bin/sh
if [ $ACTION = "add" ];
then
   wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0
   wpa_cli -a/sbin/wpa_action.sh -B
else
   killall wpa_supplicant
   killall wpa_cli
fi

最后修改

#!/bin/sh
IFNAME=$1
CMD=$2
if [ "$CMD" = "CONNECTED" ]; then
   echo connect $IFNAME, ifconfig for it > /dev/console
    ifconfig wlan0 192.168.1.10                                                                      //配置IP
    route add default gw 192.168.1.1                                                             //设置网关
    all_test&                                                                                                   //后台运行应用程序
    mjpg_streamer -i "input_uvc.so -f 10 -r 640*480 " -o "output_http.so -c "ruoyun:liufeng" -w www -p 8888"&
fi
if [ "$CMD" = "DISCONNECTED" ]; then
   echo disconnect $IFNAME > /dev/console
fi


四.移植libjpeg(mjpg-streamer需要的库)

tar xzvf libjpeg-turbo-1.2.1.tar.gz
cd libjpeg-turbo-1.2.1
mkdir tmp
./configure --prefix=$PWD/tmp --host=arm-linux
make
make install
将库文件赋值到开发板中


五.设置外网访问

        1.注册花生壳

        2.设置路由器(我的路由器是硕科NW750P,我以它为例)

              a.设置动态域名

这里注意       第一点:用户名和密码都是你注册时候填的用户名和密码

                      第二点:花生壳客户端既然在路由上登陆了,就不要在别处登陆

状态信息上如果出现图中字样,恭喜你成功了

              b.端口映射

注意            第一点:内网主机IP地址就是你的摄像头的IP地址,内部端口也是摄像头的端口(自己改成8888了,mjpg_streamer默认8080,最好是改了网上有人说运营商有的会关闭8080)

                   第二点:外部端口设置为80后,把本地WEB管理端口改下,避免冲突



              c.DMZ

我的防火墙关了所以开不开这个无关紧要,你要是防火墙是开着的话,把这个DMZ打开

       3.测试

             a.首先WINDOWS主机ping花生壳如果能ping通代表了启动成功,如果没有请仔细检查路由器是否启动花生壳或者是否重复登录。

             b.开发板ping外网,注意ping的是外网而不是路由器的网关,我之前调试一直挂在这里。只有你的开发板能ping的通外网。外网的花生壳才能够连接上你的开发板。我之前DNS设置错了,浪费了很长时间。

             c.花生壳端口访问,在浏览器上输入花生壳网址就能看到摄像头的情况了(当然mjpg-streamer需要相应的参数这个我下篇文章会详细讲)。