本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2293833_1_1.html
米尔MYD-YT507开发板提供了众多的接口,可以很方便我们接入外设:
一、摄像头配件
摄像头配件部分,官方提供了好几种选择:
其中有对USB摄像头的支持:
既然能够支持USB摄像头,正好我手头有一个海康威视的USB摄像头,接上来,经过一番尝试,发现可用,而且很好用。
二、USB摄像头接入
把这个摄像头的USB直接接到开发板上即可:
登录到开发板上,通过下面的命令,可以查看USB摄像头接入时,是否被检测到了:
dmesg
在接上USB摄像头,然后再拔掉,dmesg
将会返回如下的信息:
然后,我们可以安装一个usbutils工具中提供的lsusb指令,来检测系统是否正确识别了:
# 安装
sudo apt install usbutils
# 查看具体信息
lsusb -v -t
lsusb
通过lsusb -v -t
,可以查看当前接入的设备类型。通过lsusb
可以查看开发板的USB挂载点。
在上图中,uvcvideo即为USB摄像头设备,其挂载到了Bus03 Port1 ,对应的ID为1d6b:0002
。最后的这个id,需要记录下来,后续需要使用。
通过上述操作,我们可以确认,摄像头正确接入了,后续就可以开始使用了。
三、摄像头参数了解
要使用这个USB摄像头,我们需要先了解一下它的相关参数信息,例如支持的格式,分辨率等,这可以通过Video for Linux这个工具查看。
Video for Linux简称V4L,有网友画了一个结构非常清晰又很复杂的v4l框架图:
感觉过于复杂,这里不深究了,就知道,它能够很方便的查看摄像头的各项信息就好了。
安装v4l:
sudo apt install v4l-utils
然后即可使用v4l2-ctl
命令查看了,具体操作如下:
查看系统识别的摄像头:
sudo v4l2-ctl --list-devices
从上图中可以看到,这个USB摄像头,识别为 HIK 720P Camera
,并且设备挂载点为/dev/video0
查看摄像头支持的格式:
sudo v4l2-ctl -d /dev/video0 --list-formats
从上图中可以看到,支持MJPG和YUYV两种视频格式。
其中,Motion JPEG是一種影像壓縮格式,其中每一影格圖像都分別使用JPEG編碼,非常适合进行推流使用。
YUYV是YUV编码方式的一种存储格式,定义比较复杂,所以大家可以自己搜索资料了解。
查看摄像头支持的分辨率:
sudo v4l2-ctl --list-framesizes=MJPG -d /dev/video0
sudo v4l2-ctl --list-framesizes=YUYV -d /dev/video0
从上图中,可以看到,最大为720P,对应前面显示的 HIK 720P Camera
。
现在我们已经知道了,这个USB摄像头,分辨率能够支持720P,格式支持MJPEG和YUYV了,下面,我们就可以使用摄像头软件,来获取摄像头拍摄的画面了。
四、摄像头拍照
因为我所使用的系统是Ubuntu,桌面环境使用的是xfce4,所以我安装了camorama这个工具来使用摄像头。
安装camorama:
sudo aptinstall camorama
安装完成后,在xfce桌面的菜单中,就能够看到这个应用了:
使用camorama:
但是现在还不能直接从菜单点击使用,需要在命令行,通过sudo调用,如上图所示,执行后,就能打开camoraman了:
设置当前非root用户的使用权限:
使用时,切入到root用户,这很不方便,好来系统提供了udev设置的方式,能够很方便的让普通用户使用摄像头设备,具体操作如下:
sudo vim /etc/udev/rules.d/my-uvc-usb.rules
### 添加下面这行
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0002", GROUP="myir", MODE="0666"
在上面的配置中,idVendor、idProduct对应我们之前使用lsusb
命令获取的id信息:1d6b:0002
,GROUP则对应当前登录的普通用户myir。
设置完成以后,需要使用sudo reboot
重启设备生效,然后就可以在xfce界面,点击菜单使用摄像头了。
普通用户权限使用:
在默认设置的camorama界面上,点击Take Picture
会报错,提示无法创建目录,需要先进行如下的设置,将存储目录设置到当前用户的Picture目录即可:
设置完成,就可以点击Take Picture
拍照了,拍照后,到当前用户的Picture目录即可查看图片。
拍摄图片的查看:
要查看图片我们可以试用 ristretto 工具,安装后,可以从系统菜单打开,也可直接点击图片,就能查看了:
五、摄像头视频录制
视频录制:
要录制视频,可以使用cheese或者obs,为了简单起见,这里我们直接使用ffmpeg来录制视频,不需要安装太多额外的大的应用。
# 安装ffmpeg,之前的步骤,可能会自动安装了
sudo apt install ffmpeg
# 进入到~/Videos目录并录制摄像头视频
cd ~/Videos
ffmpeg -f video4linux2 -r 30 -s 640x480 -i /dev/video0 out.mp4
执行上述命令后,就会将录制的视频,存放到 ~/Videos/out.mp4了,修改out.mp4可以保存为你实际需要的视频文件名。
要结束录制,按ctrl+c即可
sudo apt install smplayer
安装完成后,点击视频,即可播放:
因为我使用vnc连接远程桌面进行播放的,所以播放的效果不是太好。如果是本地连接显示器进行播放,效果非常不错。本文所附带的视频,就是实际录制的视频。
六、总结
到这里,我们已经能够正常使用USB摄像头,来进行拍照,进行录制了。
操作过程中,所使用的软件,是我实际使用的,大家也可以用自己熟悉的其他工具软件来进行操作。
下一步,将会给大家分享,如何使用USB摄像头进行推流,提供类似直播的在线视频;
同时,我手头上,有一个M2 Dock,已经实现了,在M2 Dock,通过米尔MYD-YT507开发板的USB摄像头视频推流,来获取实际拍摄数据,进行图像分析处理,例如魔方色块的智能识别。
全部0条评论
快来发表一下你的评论吧 !