目录
1、操作系统版本
使用的虚拟机加ubuntu 20.04
2、USB摄像头驱动
USB摄像头使用的驱动为UVC,UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,已成为USB org标准之一。
如今的主流操作系统(如Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 and later)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。
3、usb摄像头预览
首先安装v4l2工具
sudo apt install v4l-utils
然后,接入USB摄像头,可以在/dev下查看到有一个/dev/video0的设备:
接着查看USB摄像头支持的分辨率及格式:
v4l2-ctl -d /dev/video0 --list-formats-ext
安装gstreamer:
sudo apt-get install libgl1-mesa-dev
sudo apt-get install gstreamer1.0-libav
sudo apt-get install gstreamer1.0-plugins-bad
sudo apt-get install gstreamer1.0-plugins-base
sudo apt-get install gstreamer1.0-plugins-ugly
sudo apt-get install gstreamer1.0-plugins-good
摄像头预览,输入命令,以下两条命令都支持:
gst-launch-1.0 v4l2src ! autovideosink
gst-launch-1.0 v4l2src ! xvimagesink
4、采集USB摄像头保存至图片
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! jpegenc ! filesink location=file.jpg
5、采集USB摄像头保存至mp4文件
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=500 ! videoconvert ! 'video/x-raw, width=640, height=480, framerate=30/1' ! queue ! x264enc ! mp4mux ! filesink sync=false location=camera-h264-640x480.mp4