前提说:开发板lcd显示摄像头
1. 使能设备树插件
想要使能OV5640摄像头需要使能74hc595和cam两个设备树插件,同时摄像头设备树插件和LED
的设备树插件用到重复的引脚,需关闭LED相关的设备树插件,如果还想要在LCD液晶屏上显示摄
像头的内容还需要使能cd的设备树插件,如下所示
先用vim打开/boot/uEnv.txt
vim /boot/uEnv.txt
输入/,搜索lcd定位到dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-lcd.dtbo该行,更改前方的#(#为注释),如下面代码一样。
cam,74hc595,led,下方程序一样
dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-74hc595.dtbo dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-cam.dtbo dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-lcd.dtbo #dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-led.dtbo
2. v4l-utils工具使用
开发板安装v4l-utils工具
sudo apt install v4l-utils
查看可用的视频设备
v4l2-ctl --list-devices
查看到了/dev/video1和/dev/video2两个视频设备(其实就是usb摄像头)
查看/dev/video1的摄像头参数
sudo v4l2-ctl -d /dev/video1 --all
发现摄像头支持uvcvideo,(开发板本身也支持uvcvideo)。则两者可以互连。
查看摄像头所支持的分辨率(/dev/video1)
sudo v4l2-ctl --list-formats-ext -d /dev/video1
支持YUYV和MJPG(韦东山的视频监控项目)
3. 安装gstreamer
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools
4.简单测试
使用以下命令可对摄像头进行录制视频、拍照或将摄像头的拍摄到的视频显示到显示屏上。
举个例子YUYV,1280x960 ,5fps就是下方命令的YUY2,width=(int)1280height=(int)960, framerate=(fraction)5/1 (将上面的查看摄像头分辨率截图下来),替换相同数字即可
sudo gst-launch-1.0 -v v4l2src device=/dev/video1 ! "video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)960, framerate=(fraction)5/1" ! videoconvert ! fbdevsink
打开开发板的相机功能出现摄像头画面及成功
野火官方文档拓展一下(USB摄像头)