Mjpg-Streamer是一个开源项目,其基本功能是从一个uvc内核摄像头读取内容,然后将它推送到本地的8080端口上面。就是一个本地的视频服务器。它的项目网站在这里。

OpenWRT的软件源中也已经对它有了移植,所以我们只需要从OpenWRT的官方网站上找到对应15.05版本OpenWRT系统的Mjpg-Streamer,然后下载安装即可。除此之外还需要一些其他的软件包去支持它的运行:kmod-usb-core, kmod-usb2, kmod-video-core, kmod-video-uvc, libpthread,libjpeg。前4个是linux的系统内核文件,相当于usb接口和摄像头的驱动;后2个是库文件,用与提供多线程和jpeg图片格式支持。

1.添加驱动支持

要支持摄像头,就必须配置上摄像头的驱动,因为是免驱的USB摄像头,因此我们必须配置上 UVC 驱动,具体如图所示。

首先,我们选中内核模块进行配置:

选中 Video 支持配置
按”y”选中 kmod-video-core
在展开的选项中选中 uvc

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

选择Multimedia
再选择mjpg-streamer

重新make V=99

2.启动mjpg-streamer
2.1.使用脚本启动

/etc/config/mjpg-streamer修改mjpg-streamer配置文件,找到里面的enabled设置,将0改为1即可。

然后记得看一下这个配置文件里面的其他内容,都是很直白的内容,注意fps,led是可以删除的设置内容,目前不需要指定帧率和led灯的只是状态。记住默认的帐号密码和端口之后保存退出。

然后启动服务:/etc/init.d/mjpg-streamer start,

以及确保OpenWRT开机自启动/etc/init.d/mjpg-streamer enable。

2.2.手动启动

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 352x288 -f 30 -q 80 -y" -o "output_http.so -p 8080 -w /www/webcam"

y是表示YUV格式。如果没有-y,默认启动是mjpeg格式,这个就报错。改成YUV格式
-d指定设备
-f 制订帧数,默认30帧
-r指定视频大小,如320×240
-q指定画质,默认80对于输出参数:
-p 指定端口,这里是8080
-w 指定网页目录,这里咱们设置的是/www/webCam目录
-c设置通过密码访问

正常启动的日志打印如下

root@OpenWrt:/dev# [   53.510000] usb 2-1: new full-speed USB device number 2 using ohci-platform
[   53.780000] usb 2-1: not running at top speed; connect to a high speed hub
[   53.820000] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (090c:f37d)
[   53.870000] input: USB 2.0 Camera as /devices/101c1000.ohci/usb2/2-1/2-1:1.0/input/input0

root@OpenWrt:/dev# [   66.130000] done.
[   66.130000] jffs2: notice: (1150) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[   66.600000] random: nonblocking pool is initialized
root@OpenWrt:/dev# 
root@OpenWrt:/dev# mjpg_streamer -i "input_uvc.so -d /dev/video0 -y" -o "output_
http.so -w www"
MJPG Streamer Version: svn rev: Unversioned directory
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 15
 i: Format............: YUYV
 i: JPEG Quality......: 80
 i: TV-Norm...........: DEFAULT
 i: FPS coerced ......: from 15 to 30
 i: Frame period time ......: 66 ms
 o: www-folder-path...: www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled
网页查看

取一张图片:http://192.168.1.1:8080?action=snapshot

在线查看视频:http://192.168.1.1:8080?action=stream

查阅内容

【宠物远程监控DIY】openwrt+rt5350+mjpg摄像头
https://blog.csdn.net/kaoyangs06/article/details/51895891

RT5350无线视频监控
https://blog.csdn.net/lqx4_3/article/details/21596463

家庭监控,网络摄像头(OpenWRT平台下Mjpg-Streamer+Ngrok实现方案)
https://blog.csdn.net/u014795817/article/details/75332489

配置OpenWrt支持网络摄像头
https://blog.csdn.net/u013162035/article/details/78823425

源码解析
https://wiki.openwrt.org/doc/howto/webcam
https://blog.csdn.net/zhengqijun_/article/details/72473177
https://www.cnblogs.com/wanghuaijun/p/8098460.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐