開發(fā)環(huán)境:
主機:Ubuntu16.04
Openwrt:Openwrt19.07
1 攝像頭選擇
做本次實驗的時候,推薦大家用 USB 免驅(qū)的攝像頭,最好是支持 MJPEG 輸出的攝像頭類型。USB 免驅(qū)攝像頭輸出 YUV 格式和輸出 MJPEG 格式,對無線監(jiān)控的效果有什么影響呢?
首先大家要知道,同樣是一幀數(shù)據(jù),YUV 格式會比 MJPEG 格式的大得多,因此我們在視頻傳輸?shù)臅r候,一般是傳輸 MJPEG 格式的數(shù)據(jù)。這樣,就有這樣一個問題,如果攝像頭是輸出 YUV 格式,那么就意味著我們需要通過軟件將視頻數(shù)據(jù)由 YUV 格式轉(zhuǎn)換成 MJPEG格式,然后傳輸。如果攝像頭輸出的是 MJPEG 格式,那個將可以直接將得到的數(shù)據(jù)進行傳輸。因此,使用支持 MJPEG 壓縮的攝像頭,比一般的攝像頭,做無線監(jiān)控的效果,好很多!
2 配置 OpenWrt 支持 usb 攝像頭
要支持?jǐn)z像頭,就必須配置上攝像頭的驅(qū)動,因為是免驅(qū)的 USB 攝像頭,因此我們必須配置上 UVC 驅(qū)動,具體如圖所示。首先,我們選中內(nèi)核模塊進行配置。
Kernel modules --- >
Video Support --- >
< * > kmod-video-core
< * > kmod-video-uvc
-*- kmod-video-videobuf2
編譯。
$make V=99
將固件燒寫到板子中,插入USB攝像頭,接口查看是否有video0這個設(shè)備節(jié)點了。
3 配置 OpenWrt 支持 mipg-streamer 軟件
mipg-streamer 就是一款用于視頻數(shù)據(jù)采集、視頻數(shù)據(jù)格式轉(zhuǎn)換、視頻數(shù)據(jù)傳輸?shù)能浖?wù)器。因此為了讓 openwrt 系統(tǒng)支持該軟件,我們需要將它配置進去。
Multimedia --- >
< * > mjpg-streamer
就這樣,我們就讓 openwrt 系統(tǒng)支持無線監(jiān)控,按前面的方法配置好后,保存退出,然后 make V=99,最后將編譯出來的固件燒寫到我們的開發(fā)板上面。然后啟動系統(tǒng)。啟動完成,插入我們的攝像頭,就會看到/dev/video0 這個設(shè)備節(jié)點。usb 攝像頭接入開發(fā)板后提示如下:
如果插上提示不對,請先做上一章,再重新生成固件即可。然后運行 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 是設(shè)備位置,我們攝像頭的設(shè)備位置在:/dev/video0,-y 用于區(qū)分一般攝像頭和支持 MJPEG 的攝像頭,-o 指定輸出,這里輸出到 output_ http.so 即 http(可以理解為輸出到網(wǎng)頁上),-w指定 web 服務(wù)器為 www。運行命令后,可以得到如下圖的信息:
#mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so"
好的,電腦上必須用火狐瀏覽器才能看到時視頻哦,我們打開網(wǎng)頁輸入:
http://192.168.2.1:8080/?action=stream
其中 192.168.2.1 是開發(fā)板的 ip 地址,8080 是 http tcp 的端口,action表示某個動作,這里表示: stream。通過這個輸入我們就可以從網(wǎng)頁完成視頻的監(jiān)控了!
當(dāng)然,在我們的 ” Monitor.apk” 中可以進行手機安裝該軟件,進行安卓手機端的控制!手機上只用輸入路由器的 IP 即可看到監(jiān)控畫面。這里 mipg-streamer 軟件使用方法我們可以通過命令:mjpg_streamer -h 進行幫助!
root@OpenWrt:~# mjpg_streamer -h
-----------------------------------------------------------------------
Usage: mjpg_streamer
-i | --input "< input-plugin.so > [parameters]"
-o | --output "< output-plugin.so > [parameters]"
[-h | --help ]........: display this help
[-v | --version ].....: display version information
[-b | --background]...: fork to the background, daemon mode
-----------------------------------------------------------------------
Example #1:
To open an UVC webcam "/dev/video1" and stream it via HTTP:
mjpg_streamer -i "input_uvc.so -d /dev/video1" -o "output_http.so"
-----------------------------------------------------------------------
Example #2:
To open an UVC webcam and stream via HTTP port 8090:
mjpg_streamer -i "input_uvc.so" -o "output_http.so -p 8090"
-----------------------------------------------------------------------
Example #3:
To get help for a certain input plugin:
mjpg_streamer -i "input_uvc.so --help"
-----------------------------------------------------------------------
In case the modules (=plugins) can not be found:
* Set the default search path for the modules with:
export LD_LIBRARY_PATH=/path/to/plugins,
* or put the plugins into the "/lib/" or "/usr/lib" folder,
* or instead of just providing the plugin file name, use a complete
path and filename:
mjpg_streamer -i "/path/to/modules/input_uvc.so"
-----------------------------------------------------------------------
【注1】輸入?yún)?shù)
-y 是關(guān)鍵,默認(rèn)啟動是 mjpeg 格式,這個就報錯。改成 YUV 格式
-d 指定設(shè)備
-f 制定幀數(shù),默認(rèn) 30 幀
-r 指定視頻大小,如 320×240
-q 指定畫質(zhì),默認(rèn) 80
【注2】輸出參數(shù)
-p 指定端口,這里是 8080
-w 指定網(wǎng)頁目錄,這里我們設(shè)置的是/www/camwww 目錄
-c 設(shè)置通過密碼訪問
【注3】修改分辨率
#mjpg_streamer -i "input_uvc.so -r 800*600 -d /dev/video0" -o "output_http.so 8080 -w www"
提示:未做出實驗效果時可以用我提供的固件先測試一下。
【注4】服務(wù)操作
/etc/init.d/mjpg-streamer enable 是設(shè)置開機自動啟動
/etc/init.d/mjpg-streamer disable 是禁止開機自動啟動
/etc/init.d/mjpg-streamer start 是現(xiàn)在啟動
/etc/init.d/mjpg-streamer restart 重啟
/etc/init.d/mjpg-streamer stop 停止
service mjpg-streamer start,在通常*nuix是這樣的,但是openwrt的busybox是精簡版的,所以變成了直接調(diào)用服務(wù)啟動
審核編輯:湯梓紅
-
usb
+關(guān)注
關(guān)注
60文章
8134瀏覽量
270527 -
攝像頭
+關(guān)注
關(guān)注
61文章
4947瀏覽量
97608 -
Ubuntu
+關(guān)注
關(guān)注
5文章
585瀏覽量
30802 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
238瀏覽量
17017 -
OpenWrt
+關(guān)注
關(guān)注
10文章
131瀏覽量
40064
發(fā)布評論請先 登錄
Openwrt開發(fā)指南 第1章 OpenWrt入門
Openwrt開發(fā)指南 第2章 OpenWrt開發(fā)環(huán)境搭建
Openwrt開發(fā)指南 第3章 OpenWrt下載及配置
Openwrt開發(fā)指南 第7章 添加Web界面
Openwrt開發(fā)指南 第12章 添加OpenWrt軟件包
Openwrt開發(fā)指南 第13章 OpenWrt啟動流程
Openwrt開發(fā)指南 第14章 統(tǒng)一接口配置UCI
Openwrt開發(fā)指南 第17章 驅(qū)動開發(fā)之字符設(shè)備驅(qū)動程序
Openwrt開發(fā)指南 第22章 Openwrt串口的使用2
Openwrt開發(fā)指南 第29章 OpenWrt 防火墻介紹

評論