<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Openwrt開發指南 第25章 配置OpenWrt支持網絡攝像頭

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

開發環境:

主機:Ubuntu16.04

Openwrt:Openwrt19.07

1 攝像頭選擇

做本次實驗的時候,推薦大家用 USB 免驅的攝像頭,最好是支持 MJPEG 輸出的攝像頭類型。USB 免驅攝像頭輸出 YUV 格式和輸出 MJPEG 格式,對無線監控的效果有什么影響呢?

首先大家要知道,同樣是一幀數據,YUV 格式會比 MJPEG 格式的大得多,因此我們在視頻傳輸的時候,一般是傳輸 MJPEG 格式的數據。這樣,就有這樣一個問題,如果攝像頭是輸出 YUV 格式,那么就意味著我們需要通過軟件將視頻數據由 YUV 格式轉換成 MJPEG格式,然后傳輸。如果攝像頭輸出的是 MJPEG 格式,那個將可以直接將得到的數據進行傳輸。因此,使用支持 MJPEG 壓縮的攝像頭,比一般的攝像頭,做無線監控的效果,好很多!

2 配置 OpenWrt 支持 usb 攝像頭

要支持攝像頭,就必須配置上攝像頭的驅動,因為是免驅的 USB 攝像頭,因此我們必須配置上 UVC 驅動,具體如圖所示。首先,我們選中內核模塊進行配置。

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

編譯。

$make V=99

將固件燒寫到板子中,插入USB攝像頭,接口查看是否有video0這個設備節點了。

3 配置 OpenWrt 支持 mipg-streamer 軟件

mipg-streamer 就是一款用于視頻數據采集、視頻數據格式轉換、視頻數據傳輸的軟件,服務器。因此為了讓 openwrt 系統支持該軟件,我們需要將它配置進去。

Multimedia  --- >
< * > mjpg-streamer

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

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 是設備位置,我們攝像頭的設備位置在:/dev/video0,-y 用于區分一般攝像頭和支持 MJPEG 的攝像頭,-o 指定輸出,這里輸出到 output_ http.so 即 http(可以理解為輸出到網頁上),-w指定 web 服務器為 www。運行命令后,可以得到如下圖的信息

#mjpg_streamer -i "input_uvc.so -d /dev/video0" -o "output_http.so"

3.png

好的,電腦上必須用火狐瀏覽器才能看到時視頻哦,我們打開網頁輸入:

http://192.168.2.1:8080/?action=stream

其中 192.168.2.1 是開發板的 ip 地址,8080 是 http tcp 的端口,action表示某個動作,這里表示: stream。通過這個輸入我們就可以從網頁完成視頻的監控了!

當然,在我們的 ” Monitor.apk” 中可以進行手機安裝該軟件,進行安卓手機端的控制!手機上只用輸入路由器的 IP 即可看到監控畫面。這里 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 是關鍵,默認啟動是 mjpeg 格式,這個就報錯。改成 YUV 格式

-d 指定設備

-f 制定幀數,默認 30 幀

-r 指定視頻大小,如 320×240

-q 指定畫質,默認 80

【注2】輸出參數

-p 指定端口,這里是 8080

-w 指定網頁目錄,這里我們設置的是/www/camwww 目錄

-c 設置通過密碼訪問

【注3】修改分辨率

#mjpg_streamer -i "input_uvc.so -r 800*600 -d /dev/video0" -o "output_http.so 8080 -w www"

提示:未做出實驗效果時可以用我提供的固件先測試一下。

【注4】服務操作

/etc/init.d/mjpg-streamer enable 是設置開機自動啟動

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

/etc/init.d/mjpg-streamer start 是現在啟動

/etc/init.d/mjpg-streamer restart 重啟

/etc/init.d/mjpg-streamer stop 停止

service mjpg-streamer start,在通常*nuix是這樣的,但是openwrt的busybox是精簡版的,所以變成了直接調用服務啟動

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    59

    文章

    7457

    瀏覽量

    258998
  • 攝像頭
    +關注

    關注

    59

    文章

    4654

    瀏覽量

    93071
  • Ubuntu
    +關注

    關注

    5

    文章

    533

    瀏覽量

    28939
  • 開發環境
    +關注

    關注

    1

    文章

    204

    瀏覽量

    16471
  • OpenWrt
    +關注

    關注

    10

    文章

    118

    瀏覽量

    38935
收藏 人收藏

    評論

    相關推薦

    Openwrt開發指南 第1章 OpenWrt入門

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

    Openwrt開發指南 第2章 OpenWrt開發環境搭建

    開發PC機上的軟件時,可以直接在PC機上編輯、編譯、調試軟件,最終發布的軟件也是在PC機上運行。對于物聯網OpenWrt開發,最初的嵌入式設備是一個空白的系統,需要通過主機為它構建基本的軟件系統
    的頭像 發表于 06-27 09:09 ?4634次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> 第2章 <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發</b>環境搭建

    Openwrt開發指南 第3章 OpenWrt下載及配置

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

    Openwrt開發指南 第4章 燒寫OpenWrt固件

    對于一個完整的嵌入式系統,它由U-boot、內核(Linux)、文件系統、應用程序四部分組成。那么這四部分之間的關系是怎么樣的呢?OpenWrt是屬于哪部分呢?
    的頭像 發表于 06-27 09:11 ?3612次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> 第4章 燒寫<b class='flag-5'>OpenWrt</b>固件

    Openwrt開發指南 第12章 添加OpenWrt軟件包

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

    Openwrt開發指南 第13章 OpenWrt啟動流程

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

    Openwrt開發指南 第14章 統一接口配置UCI

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

    Openwrt開發指南 第22章 Openwrt串口的使用2

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

    Openwrt開發指南 第24章 配置開發支持U盤

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

    Openwrt開發指南 第29章 OpenWrt 防火墻介紹

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

    OpenWRT + OpenCV 無線攝像頭監控和圖像處理

    地址,可以查看攝像頭的實時圖像192.168.10.1:8080/?action=stream至此,OpenWRT已經實現掛載攝像頭進行無線監控?!静襟E:OpenCV】電腦是已經安裝好Visual
    發表于 02-09 22:15

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

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

    openwrt開發教程1~6章

    openwrt開發教程1~6章
    發表于 03-17 14:23 ?49次下載

    openwrt路由器配置方法技巧分享

    OpenWrt被描述為一個嵌入式的 Linux發行版。本文主要介紹了openwrt的特點、openwrt的優勢與劣勢以及openwrt路由器配置
    發表于 12-27 08:50 ?9.9w次閱讀
    <b class='flag-5'>openwrt</b>路由器<b class='flag-5'>配置</b>方法技巧分享

    openwrt都有什么功能_openwrt詳細功能介紹_openwrt刷機教程

    penWrt作為一個嵌入式的Linux發行版已經得到廣泛的運用,本文主要介紹了openWRT開發背景、OpenWrt功能、openWRT特點以及op
    發表于 12-27 10:21 ?16.4w次閱讀
    <b class='flag-5'>openwrt</b>都有什么功能_<b class='flag-5'>openwrt</b>詳細功能介紹_<b class='flag-5'>openwrt</b>刷機教程
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>