0%

[OpenWrt]实现视频监控

1、摄像头选择

做本次实验的时候,推荐大家用 USB 免驱的摄像头,最好是支持 MJPEG 输出的摄像头类型。USB 免驱摄像头输出 YUV 格式和输出 MJPEG 格式,对无线监控的效果有什么影响呢?

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

2、配置 OpenWrt 支持 usb 摄像头

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

选中 Video 支持配置:
20181219204830490.png

按”y”选中 kmod-video-core:

20181219204843968.png
在展开的选项中选中 uvc,也可选择编译成模块:
201812192048589.png

3、配置 OpenWrt 支持 mipg-streamer 软件

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

20181219204923922.png

就这样,我们就让 openwrt 系统支持无线监控,按前面的方法配置好后,保存退出,然后 make V=s,最后将编译出来的固件烧写到我们的开发板上面。然后启动系统。启动完成,插入我们的摄像头,就会看到/dev/video0 这个设备节点:

20190103144621810.png

然后操作 mipg-streamer 软件就可以实现在线视频检测,先看看mjpg_streamer怎么用,执行:

1
mjpg_streamer -h

出现:

20190103144856385.png

命令补充:

1
2
3
4
5
6
7
8
9
-y 是关键,默认启动是 mjpeg 格式,这个就报错。改成 YUV 格式
-d 指定设备
-f 制定帧数,默认 30
-r 指定视频大小,如 320×240
-q 指定画质,默认 80
关于输出参数:
-p 指定端口,这里是 8080
-w 指定网页目录,这里我们设置的是/www/camwww 目录
-c 设置通过密码访问

4、测试

(1)一般摄像头,执行

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

(2)支持 MJPEG 的摄像头,执行
1
mjpg_streamer -i "input_uvc.so -d /dev/video1" -o "output_http.so"

出现:

2019010314561633.png

好的,电脑上最好用火狐浏览器或者谷歌才能看到时视频哦,我们打开网页输入:

1
192.168.1.251:8080/?action=stream

其中 192.168.1.251是开发板的 ip 地址,8080 是 http tcp 的端口,action表示某个动作,这里表示: stream。通过这个输入我们就可以从网页完成视频的监控了!
20190103145750833.png

修改分辨率为320*240,执行

1
mjpg_streamer -i "input_uvc.so -r 320*240 -d /dev/video0" -o "output_http.so"

————————————————
版权声明:本文为CSDN博主「小白clever」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hunzhangzui9837/article/details/85695346