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
    +关注

    关注

    60

    文章

    7888

    浏览量

    263918
  • 摄像头
    +关注

    关注

    59

    文章

    4806

    浏览量

    95389
  • Ubuntu
    +关注

    关注

    5

    文章

    560

    浏览量

    29548
  • 开发环境
    +关注

    关注

    1

    文章

    220

    浏览量

    16580
  • OpenWrt
    +关注

    关注

    10

    文章

    127

    浏览量

    39261
收藏 人收藏

    评论

    相关推荐

    Openwrt开发指南 1 OpenWrt入门

    如果要学习openwrt的话,买些列表中二手的路由器来实践下更容易学习,大部分要升级一下rom芯片和内存芯片,典型配置都是4M、64M。
    的头像 发表于 06-27 09:09 4217次阅读

    Openwrt开发指南 2 OpenWrt开发环境搭建

    开发PC机上的软件时,可以直接在PC机上编辑、编译、调试软件,最终发布的软件也是在PC机上运行。对于物联网OpenWrt开发,最初的嵌入式设备是一个空白的系统,需要通过主机为它构建基本的软件系统,并
    的头像 发表于 06-27 09:09 6908次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <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 5545次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下载及<b class='flag-5'>配置</b>

    Openwrt开发指南 7 添加Web界面

    LuCI作为“FFLuCI”诞生于2008年3月份,目的是为OpenWrt固件从Whiterussian到Kamikaze实现快速配置接口。Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级
    的头像 发表于 06-29 09:04 3660次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>7<b class='flag-5'>章</b> 添加Web界面

    Openwrt开发指南 12 添加OpenWrt软件包

    OpenWrt是一个比较完善的嵌入式Linux开发平台,在无线路由器应用上已有4000多个软件包。我们可以在其基础上增加软件包,以扩大其应用范围。在OpenWrt中增加软件包极其方便,按照
    的头像 发表于 06-29 09:09 8647次阅读

    Openwrt开发指南 13 OpenWrt启动流程

    任何系统的启动都是开发人员首要关注的问题,因为只有了解了系统的启动流程和启动机制,才能真正掌握一个系统,如果对启动的启动不熟悉的话,是不可能真正用好一个系统,openwrt系统也不例外,他的启动和一般的嵌入式系统启动还有所区别,现在咱们就分析一下
    的头像 发表于 06-29 09:09 3413次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>启动流程

    Openwrt开发指南 14 统一接口配置UCI

    UCI即统一接口配置(UnifiedConfigurationInterface)的简称,它被应用于OpenWrt系统上面。
    的头像 发表于 06-29 09:11 2988次阅读

    Openwrt开发指南 17 驱动开发之字符设备驱动程序

    首先将 RT5350_drv 文件夹传到 OpenWrt 源码的chaos_calmer/package/kernel 目录下。然后进入 OpenWrt 源码的顶层目录,执行 make menuconfig。
    的头像 发表于 07-02 09:20 3122次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>17<b class='flag-5'>章</b> 驱动<b class='flag-5'>开发</b>之字符设备驱动程序

    Openwrt开发指南 22 Openwrt串口的使用2

    在上一中,我们成功的让驱动程序支持了串口 2,并且做了简单的测试。接下来,我们就为串口 2 添加一个应用程序,从而实现 Wi-Fi 串口。实现过程非常简单,首先进入 OpenWrt 系统源码,然后运行 make menucon
    的头像 发表于 07-05 09:09 3961次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt开发指南 24 配置开发支持U盘

    Openwrt开发指南 24 配置开发支持U盘
    的头像 发表于 07-13 08:55 2950次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> <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 3455次阅读
    <b class='flag-5'>Openwrt</b><b class='flag-5'>开发指南</b> <b class='flag-5'>第</b>29<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b> 防火墙介绍

    OpenWRT + OpenCV 无线摄像头监控和图像处理

    地址,可以查看摄像头的实时图像192.168.10.1:8080/?action=stream至此,OpenWRT已经实现挂载摄像头进行无线监控。【步骤: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 53次下载

    Openwrt路由器挂载摄像头详细教程

    Openwrt还有一项功能比较吸引人,那就是挂载摄像头,实现远程实时监控。本文介绍通过mjpeg-streamer输出摄像头的实时图像,从而实现远程监控。最近还会写一篇使用motion实现自动拍照上传的教程。
    发表于 12-27 10:12 1.4w次阅读