前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你视频监控之 MJPG-Streamer 方案

手把手教你视频监控之 MJPG-Streamer 方案

作者头像
Jasonangel
发布2021-07-07 10:11:47
2.4K0
发布2021-07-07 10:11:47
举报
文章被收录于专栏:嵌入式Linux系统开发

这几天在学习韦东山老师的智能监控方案,教程是免费的,链接如下:

https://www.100ask.net/detail/p_5f0fc9e9e4b0ee0b8872c2c3/6

看过韦东山第三期或者是正点原子imx6ull的教程,都可以做此实验。

硬件要求:imx6ull开发板、一款USB摄像头。

软件要求:ubuntu虚拟机、需要会搭建tftp和nfs环境、需要会buildroot编译根文件系统、需要会编译Linux内核。

在后台回复【摄像头】,我把整理的搭建环境的pdf放进去了,照着视频教程和pdf教程即可,不会的可以后台私聊博主。

说明:博主并没有使用下载emmc镜像的方式,而是使用 tftp 下载内核和设备树, nfs 网络挂载根文件系统。

调通了局域网的视频监控,效果如下:

实现框架:

1、如何查看自己的摄像头支不支持UVC(USB video class)?

答案:在windows下设备管理器,点击摄像头,右键查看属性,会出现ID。或者在Linux下,插入USB摄像头,输入lsusb,可以看到ID。ID分为VID和PID,根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。

这里显示的是05a3:9230。

Linux2.6以后,已经将很多USB摄像头的UVC驱动写好了,具体支不支持这一款摄像头,这里有一个网址可以查看:

http://www.ideasonboard.org/uvc/

如果自己的摄像头ID在列表中,说明绝对支持,如果不在里面,也有可能支持,也有可能不支持,看情况,比如我的ID为05a3:9230,不在这个列表中,但是却支持,因为有一些芯片实际上驱动代码是相同的。如果自己新买一个,最好是买支持的,比如罗技C270,或者博主在淘宝买的这个:

2、如何查看自己的摄像头正不正常

在windows下,很简单,打开PotPlayer或者其他电脑视频软件,选择打开摄像头,就可以看到图像:

在Linux下,有几个软件可以测试自己的摄像头:

代码语言:javascript
复制
1、webcam
2、spcaview
3、luvcview
4、guvcview
5、xawtv

spcaview是编译安装,剩下的sudo apt-get install ... 即可,博主亲测xawtv和guvcview是可以显示图像的,guvcview界面很友好,推荐。命令:guvcview /dev/videoX ,效果如图:

3、如何打开Linux内核的UVC功能

在Linux内核源码目录下,输入make menuconfig,路径为Device Drivers/Multimedia support/Media USB Adapters/USB Video Class。另外一般也把Device Drivers/Multimedia support/V4L platform devices打开。

保存一下配置,然后编译。注意不要用正点原子原版编译脚本编译,他会采用deconfig,会把你的配置取消。

4、最后

编译完成后,会在arch/arm/boot产生新的zImage内核,在arch/arm/boot/dts产生新的设备树。

一开始教程中,我们已经在 buildroot 中打开了MJPG-Streamer,编译出根文件系统后,此时的根文件系统rootfs已经包含了MJPG-Streamer软件。

这时候按照韦东山老师的视频教程操作即可。

感性的解释下什么叫UVC:在windows下,一个USB摄像头插入电脑主机,会自动加载驱动程序,一般都没问题。在Linux下,如果Linux内核没有给你写好UVC驱动,你就要自己写摄像头驱动,我们知道USB协议是比较难的,更别说在此基础上加上视频传输,所以如果不是Linux内核集成了很多现成的UVC驱动,我们自己从零调试也是很难的。

UVC出现的原因:UVC的出现主要是为了统一日益增多的摄像头视频接口,一个USB接口非常方便。

·················· END ··················

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式Linux系统开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、如何查看自己的摄像头支不支持UVC(USB video class)?
  • 2、如何查看自己的摄像头正不正常
  • 3、如何打开Linux内核的UVC功能
  • 4、最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档