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