14. 摄像头¶
LubanCat-sg200x系列板卡使用的摄像头接口是24pin mipi接口,目前适配了树莓派OV5647的摄像头,但isp无法使用,图像是绿色的,其他型号摄像头仍在适配中,请耐心等待。
除了mipi摄像头外,LubanCat-sg200x系列板卡还支持UVC摄像头。
14.1. mipi摄像头¶
待添加….
14.2. uvc摄像头¶
LubanCat-sg200x系列板卡支持使用USB UVC摄像头,以下介绍UVC摄像头的使用方法。
以下测试野火在售的 USB UVC摄像头
14.2.1. 安装工具¶
安装v4l-utils和gstreamer1.0软件包:
1 2 3 | #安装软件包
sudo apt install v4l-utils
sudo apt install gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good
|
14.2.2. 连接摄像头¶
将摄像头插入USB HOST接口,然后拔动切换开关向USB A口方向,切换为host,USB-OTG切换开关可以理解成物理接口的切换开关 切换到USB A接口方向时,主控的USB信号通往USB A接口;切换到Type-C接口方向时,主控的USB信号通往Type-C接口。
将拨码开关拨到USB A口方向后,仍需要软件配置usb口为host模式,因为系统默认设置usb为device模式,需要执行以下命令进行切换host。
1 2 | #临时切换host模式
sudo sh -c 'echo host > /proc/cviusb/otg_role'
|
具体usb otg切换方法可以参考: USB 章节。
14.2.3. 查看摄像头信息¶
14.2.3.1. 列出摄像头设备¶
通过v4l2-ctl查看摄像头设备,如果只接了一个摄像头,那么其中/dev/video0就是我们的摄像头的设备。
1 2 3 4 5 6 7 8 | #列出摄像头设备
v4l2-ctl --list-devices
#信息输出如下
USB camera: USB camera (usb-4340000.usb-1.4):
/dev/video0
/dev/video1
/dev/media0
|
14.2.3.2. 查看摄像头格式和分辨率¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #查看支持的格式
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1600x1200
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 2592x1944
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (30.000 fps)
[1]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1600x1200
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 2048x1536
Interval: Discrete 0.333s (3.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.333s (3.000 fps)
Size: Discrete 2592x1944
Interval: Discrete 0.333s (3.000 fps)
|
可以看到当前摄像头支持MJPG、YUYV等格式,支持的最大分辨率为2592x1944。
14.2.4. 命令行拍摄照片¶
1 2 | #拍摄照片
sudo gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! jpegenc ! filesink location=picture.jpg
|
生成的picture.jpg就是拍摄出来的照片了
14.2.5. 命令行拍摄视频¶
1 2 | #拍摄视频
v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=640,height=480,pixelformat='mjpg' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=640,height=480 --stream-to=out.yuv
|
生成的out.yuv 便是拍摄出来的视频了