WRTnode 2R 使用USB摄像头传输视频流

首先我们需要对固件重新编译,因为没有USB摄像头驱动是无法进行下一步的传输的。

1
make menuconfig
1
2
3
4
5
Multimedia      --->   <*> mjpg-streamer

Kernel modules ---> Video Support ---> <*> kmod-video-core......
<*> kmod-video-uvc....
-*- kmod-video-videobuf2

配置好,Save之后,编译。

1
make -j8

然后把生成的固件刷机。不会的话参照WRTnode 2R SDK搭建,固件的编译后部分。

刷好之后,插上USB摄像头,ls /dev看看是否已连接上。结果并没有连上。

查看内核日志发现是电流不够

1
usb 1-1.3: rejected 1 configuration due to insufficient available bus power

其实内核日志也可以这样查看:

1
dmesg | grep usb

经过google查到解决方法执行下面的命令:

1
echo 1 > /sys/bus/usb/devices/1-1.3/bConfigurationValue

bConfigurationValue的意思大概是强制启用该USB设备。 这里的1-1.3改为你的内核日志里的USB端口号,然后再ls /dev发现USB摄像头挂载成功,也就是绿色框内的video设备。

再次查看内核日志,已经有摄像头成功加载的信息。

然后我们就可以使用mjpg_streamer 来推流了。

1
mjpg_streamer -i "input_uvc.so -f 25 -r 640*480" -o "output_http.so -p 8080"

不出意外的话,打开这个网址就可以看到摄像头的图像了。http://192.168.8.1:8080/?action=stream

如果你想每次启动WRTnode 2R之后,都会自动开启摄像头传输视频,可以在系统选项卡下的启动项设置的本地启动脚本中加入上面那些命令。

1
2
echo 1 > /sys/bus/usb/devices/1-1.3/bConfigurationValue
mjpg_streamer -i "input_uvc.so -f 25 -r 640*480" -o "output_http.so -p 8080"