第25章 配置OpenWrt支持网络摄像头

来源:互联网 发布:北京金汤js防水 编辑:程序博客网 时间:2024/06/05 06:49

25.1 摄像头选择

做本次实验的时候,推荐大家用 USB 免驱的摄像头,最好是支持 MJPEG 输出的摄像头类型。USB 免驱摄像头输出 YUV 格式和输出 MJPEG 格式,对无线监控的效果有什么影响呢?
首先大家要知道,同样是一帧数据,YUV 格式会比 MJPEG 格式的大得多,因此我们在视频传输的时候,一般是传输 MJPEG 格式的数据。这样,就有这样一个问题,如果摄像头是输出 YUV 格式,那么就意味着我们需要通过软件将视频数据由 YUV 格式转换成 MJPEG格式,然后传输。如果摄像头输出的是 MJPEG 格式,那个将可以直接将得到的数据进行传输。因此,使用支持 MJPEG 压缩的摄像头,比一般的摄像头,做无线监控的效果,好很多!

25.2 配置 OpenWrt 支持 usb 摄像头

要支持摄像头,就必须配置上摄像头的驱动,因为是免驱的 USB 摄像头,因此我们必须配置上 UVC 驱动,具体如图所示。
首先,我们选中内核模块进行配置:

这里写图片描述

图1

选中 Video 支持配置:
这里写图片描述

图2

按”y”选中 kmod-video-core:
这里写图片描述

图3

在展开的选项中选中 uvc:
这里写图片描述

图4

25.3 配置 OpenWrt 支持 mipg-streamer 软件

mipg-streamer 就是一款用于视频数据采集、视频数据格式转换、视频数据传输的软件,服务器。因此为了让 openwrt 系统支持该软件,我们需要将它配置进去:

这里写图片描述

图5

这里写图片描述

图6

就这样,我们就让 openwrt 系统支持无线监控,按前面的方法配置好后,保存退出,然后 make V=99,最后将编译出来的固件烧写到我们的开发板上面。然后启动系统。启动完成,插入我们的摄像头,就会看到/dev/video0 这个设备节点。usb 摄像头接入开发板后提示如下:
这里写图片描述
如果插上提示不对,请先做上一章,再重新生成固件即可。然后运行 mipg-streamer 软件:
一般摄像头:

mjpg_streamer -i "input_uvc.so -d /dev/video0 -y" -o "output_http.so -w www"

支持 MJPEG 的摄像头:

mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so -w www"

其中: -i 表示指定输入,这里输入为:input_uvc.so 即 uvc(usb video),-d 是设备位置,我们摄像头的设备位置在:/dev/video0,-y 用于区分一般摄像头和支持 MJPEG 的摄像头,-o 指定输出,这里输出到 output_ http.so 即 http(可以理解为输出到网页上),-w指定 web 服务器为 www。
运行命令后,可以得到如下图的信息:
这里写图片描述
好的,电脑上必须用火狐浏览器才能看到时视频哦,我们打开网页输入:
192.168.0.10:8080/?action=stream
其中 192.168.0.10 是开发板的 ip 地址,8080 是 http tcp 的端口,action表示某个动作,这里表示: stream。通过这个输入我们就可以从网页完成视频的监控了!
当然,在我们的 ” Monitor.apk” 中可以进行手机安装该软件,进行安卓手机端的控制!手机上只用输入路由器的 IP 即可看到监控画面。
这里 mipg-streamer 软件使用方法我们可以通过命令:mjpg_streamer –h 进行帮助!
这里写图片描述
-y 是关键,默认启动是 mjpeg 格式,这个就报错。改成 YUV 格式
-d 指定设备
-f 制定帧数,默认 30 帧
-r 指定视频大小,如 320×240
-q 指定画质,默认 80
关于输出参数:
-p 指定端口,这里是 8080
-w 指定网页目录,这里我们设置的是/www/camwww 目录
-c 设置通过密码访问
修改分辨率如:

mjpg_streamer -i "input_uvc.so -r 800*600 -d /dev/video0" -o "output_http.so 8080 -w www"

提示:未做出实验效果时可以用我提供的固件先测试一下。

本章附件

点击进入下载