0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Openwrt開發(fā)指南 第25章 配置OpenWrt支持網(wǎng)絡(luò)攝像頭

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-07-13 08:56 ? 次閱讀

開發(fā)環(huán)境:

主機(jī):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ù)進(jìn)行傳輸。因此,使用支持 MJPEG 壓縮的攝像頭,比一般的攝像頭,做無線監(jiān)控的效果,好很多!

2 配置 OpenWrt 支持 usb 攝像頭

要支持?jǐn)z像頭,就必須配置上攝像頭的驅(qū)動,因為是免驅(qū)的 USB 攝像頭,因此我們必須配置上 UVC 驅(qū)動,具體如圖所示。首先,我們選中內(nèi)核模塊進(jìn)行配置。

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)支持該軟件,我們需要將它配置進(jìn)去。

Multimedia  --- >
< * > mjpg-streamer

就這樣,我們就讓 openwrt 系統(tǒng)支持無線監(jiān)控,按前面的方法配置好后,保存退出,然后 make V=99,最后將編譯出來的固件燒寫到我們的開發(fā)板上面。然后啟動系統(tǒng)。啟動完成,插入我們的攝像頭,就會看到/dev/video0 這個設(shè)備節(jié)點。usb 攝像頭接入開發(fā)板后提示如下:

1.png

2.png

如果插上提示不對,請先做上一章,再重新生成固件即可。然后運行 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"

3.png

好的,電腦上必須用火狐瀏覽器才能看到時視頻哦,我們打開網(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” 中可以進(jìn)行手機(jī)安裝該軟件,進(jìn)行安卓手機(jī)端的控制!手機(jī)上只用輸入路由器的 IP 即可看到監(jiān)控畫面。這里 mipg-streamer 軟件使用方法我們可以通過命令:mjpg_streamer -h 進(jìn)行幫助!

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】輸入參數(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è)置開機(jī)自動啟動

/etc/init.d/mjpg-streamer disable 是禁止開機(jī)自動啟動

/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ù)啟動

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7879

    瀏覽量

    263728
  • 攝像頭
    +關(guān)注

    關(guān)注

    59

    文章

    4793

    瀏覽量

    95279
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    559

    瀏覽量

    29503
  • 開發(fā)環(huán)境
    +關(guān)注

    關(guān)注

    1

    文章

    219

    瀏覽量

    16568
  • OpenWrt
    +關(guān)注

    關(guān)注

    10

    文章

    127

    瀏覽量

    39247
收藏 人收藏

    評論

    相關(guān)推薦

    Openwrt開發(fā)指南 1 OpenWrt入門

    如果要學(xué)習(xí)openwrt的話,買些列表中二手的路由器來實踐下更容易學(xué)習(xí),大部分要升級一下rom芯片和內(nèi)存芯片,典型配置都是4M、64M。
    的頭像 發(fā)表于 06-27 09:09 ?4172次閱讀

    Openwrt開發(fā)指南 2 OpenWrt開發(fā)環(huán)境搭建

    開發(fā)PC機(jī)上的軟件時,可以直接在PC機(jī)上編輯、編譯、調(diào)試軟件,最終發(fā)布的軟件也是在PC機(jī)上運行。對于物聯(lián)網(wǎng)OpenWrt開發(fā),最初的嵌入式設(shè)備是一個空白的系統(tǒng),需要通過主機(jī)為它構(gòu)建基本的軟件系統(tǒng),并
    的頭像 發(fā)表于 06-27 09:09 ?6715次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建

    Openwrt開發(fā)指南 3 OpenWrt下載及配置

    編譯OpenWrt首先需要下載源碼,OpenWrt的源碼是通過git下載,OpenWrt目前已經(jīng)很好的支持了MT7620、MT7821等芯片,因此O
    的頭像 發(fā)表于 06-27 09:10 ?5468次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下載及<b class='flag-5'>配置</b>

    Openwrt開發(fā)指南 7 添加Web界面

    LuCI作為“FFLuCI”誕生于2008年3月份,目的是為OpenWrt固件從Whiterussian到Kamikaze實現(xiàn)快速配置接口。Lua是一個小巧的腳本語言,很容易嵌入其它語言。輕量級
    的頭像 發(fā)表于 06-29 09:04 ?3628次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>7<b class='flag-5'>章</b> 添加Web界面

    Openwrt開發(fā)指南 12 添加OpenWrt軟件包

    OpenWrt是一個比較完善的嵌入式Linux開發(fā)平臺,在無線路由器應(yīng)用上已有4000多個軟件包。我們可以在其基礎(chǔ)上增加軟件包,以擴(kuò)大其應(yīng)用范圍。在OpenWrt中增加軟件包極其方便,按照
    的頭像 發(fā)表于 06-29 09:09 ?8589次閱讀

    Openwrt開發(fā)指南 13 OpenWrt啟動流程

    任何系統(tǒng)的啟動都是開發(fā)人員首要關(guān)注的問題,因為只有了解了系統(tǒng)的啟動流程和啟動機(jī)制,才能真正掌握一個系統(tǒng),如果對啟動的啟動不熟悉的話,是不可能真正用好一個系統(tǒng),openwrt系統(tǒng)也不例外,他的啟動和一般的嵌入式系統(tǒng)啟動還有所區(qū)別,現(xiàn)在咱們就分析一下
    的頭像 發(fā)表于 06-29 09:09 ?3356次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>啟動流程

    Openwrt開發(fā)指南 14 統(tǒng)一接口配置UCI

    UCI即統(tǒng)一接口配置(UnifiedConfigurationInterface)的簡稱,它被應(yīng)用于OpenWrt系統(tǒng)上面。
    的頭像 發(fā)表于 06-29 09:11 ?2949次閱讀

    Openwrt開發(fā)指南 17 驅(qū)動開發(fā)之字符設(shè)備驅(qū)動程序

    首先將 RT5350_drv 文件夾傳到 OpenWrt 源碼的chaos_calmer/package/kernel 目錄下。然后進(jìn)入 OpenWrt 源碼的頂層目錄,執(zhí)行 make menuconfig。
    的頭像 發(fā)表于 07-02 09:20 ?3096次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>17<b class='flag-5'>章</b> 驅(qū)動<b class='flag-5'>開發(fā)</b>之字符設(shè)備驅(qū)動程序

    Openwrt開發(fā)指南 22 Openwrt串口的使用2

    在上一中,我們成功的讓驅(qū)動程序支持了串口 2,并且做了簡單的測試。接下來,我們就為串口 2 添加一個應(yīng)用程序,從而實現(xiàn) Wi-Fi 串口。實現(xiàn)過程非常簡單,首先進(jìn)入 OpenWrt 系統(tǒng)源碼,然后運行 make menucon
    的頭像 發(fā)表于 07-05 09:09 ?3915次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt開發(fā)指南 24 配置開發(fā)支持U盤

    Openwrt開發(fā)指南 24 配置開發(fā)支持U盤
    的頭像 發(fā)表于 07-13 08:55 ?2877次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> <b class='flag-5'>配置</b><b class='flag-5'>開發(fā)</b>板<b class='flag-5'>支持</b>U盤

    Openwrt開發(fā)指南 29 OpenWrt 防火墻介紹

    Openwrt 是一個 GNU/Linux 的發(fā)行版, 和其他大多數(shù)的發(fā)行版一樣,Openwrt 的防火墻同樣也是基于 iptables。 在 OpenWRT 下防火墻的默認(rèn)行為已經(jīng)可以滿足路由器的需要,一般情況下也無需修改。
    的頭像 發(fā)表于 07-15 16:24 ?3395次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>29<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b> 防火墻介紹

    OpenWRT + OpenCV 無線攝像頭監(jiān)控和圖像處理

    地址,可以查看攝像頭的實時圖像192.168.10.1:8080/?action=stream至此,OpenWRT已經(jīng)實現(xiàn)掛載攝像頭進(jìn)行無線監(jiān)控。【步驟:OpenCV】電腦是已經(jīng)安裝好Visual
    發(fā)表于 02-09 22:15

    TP-LINK路由器WR703N刷openwrt固件掛載USB攝像頭

    TP-LINK路由器WR703N刷openwrt固件掛載USB攝像頭(下)
    發(fā)表于 07-16 08:14

    openwrt開發(fā)教程1~6

    openwrt開發(fā)教程1~6
    發(fā)表于 03-17 14:23 ?53次下載

    Openwrt路由器掛載攝像頭詳細(xì)教程

    Openwrt還有一項功能比較吸引人,那就是掛載攝像頭,實現(xiàn)遠(yuǎn)程實時監(jiān)控。本文介紹通過mjpeg-streamer輸出攝像頭的實時圖像,從而實現(xiàn)遠(yuǎn)程監(jiān)控。最近還會寫一篇使用motion實現(xiàn)自動拍照上傳的教程。
    發(fā)表于 12-27 10:12 ?1.4w次閱讀