########### GStreamer
CSI接口的摄像头通常需要额外的软件支持,例如GStreamer插件
GStreamer可以直接通过命令调用,也可以与代码绑定,API参考官方文档和示例代码
在evm3588开发板中,gst工具位于/usr/lib/aarch64-linux-gnu/gstreamer-1.0下
查询版本
gst-inspect-1.0 --version
安装软件
sudo apt-get install gstreamer1.0
装载GST常用的插件
sudo apt-get install gstreamer1.0-plugins-base gstreamer1.0-plugins-good
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly等
1.示例:播放一条视频
gst-launch-1.0 playbin uri-file:///path/to/your/xxx.mp4
2.示例:打开v4l2摄像头并显示实时视频流
gst-launch-1.0 v4l2src device=/dev/videox ! video/x-raw,width=1920,height=1080,framerate=30/1 ! autovideosink
其中:
v4l2src device=/dev/videox---从v4l2设备读取视频流,并指示路径
!---不同配置项的分隔符
video/x-raw,width=1920,height=1080,framerate=30/1 --- 视频格式,输出尺寸和帧率
autovideosink --- 将视频设备显示在默认的输出设备上
3. 可配置项
3.1 v4l2src元素的可配置项
device: 摄像头设备路径
num-buffers: 捕获的帧数限制
framerate: 指定帧率
pixel-aspect-ratio: 指定宽高
io-mode: 指定输入输出模式
interlace-mode: 指定摄像头的扫描模式:progresive\interlaced
3.2 video/x-raw元素的可配置项
width
height
framerate
format: 扫描模式:YUY2\RGB\NV12
pixel-aspect-ratio
interlace-mode
colorimetry:颜色信息: bt709\bt601
buffer-frames: 缓冲帧数
3.3 格式转换
gst-launch-1.0 v4l2src device=/dev/videox ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! autovideosink
3.4 捕捉图像
gst-launch-1.0 v4l2src device=/dev/videox num-buffers=1 ! jpegenc ! filesink location=cap.jpg
如果要设置分辨率则加入配置项
! video/x-raw width=1920,height=1080
3.5 查看gst工具支持的视频格式
gst-inspect-1.0 videoconvert
############ v4l2工具
安装软件
sudo apt-get install v4l-utils
列出可用设备
v4l2-ctl --list-devices
获取摄像头的基本信息
v4l2-ctl --device=/dev/videox --all
获取摄像头支持的分辨率
v4l2-ctl --list-formats-ext --device=/dev/videox
获取摄像头支持的视频输出格式
v4l2-ctl --list-formats-ext --device=/dev/videox
######## ffmpeg工具
支持各类视频相关操作:显示、打印视频信息、截取图像等
可用于usb或其它接口的摄像头,不适用CSI接口的摄像头