V4L2 设备的基本属性和功能支持情况
- driver:驱动程序名称
- card:设备卡名(通常是摄像头型号)
- bus_info:总线信息(如 USB 位置)
- version:驱动版本号
- capabilities:设备整体能力标志(如是否支持视频捕获、流式 I/O 等)
- device_caps:具体设备的能力标志(与
capabilities类似,但更精确) - reserved:保留字段(通常为 0)
#include <sys/ioctl.h>
#include <linux/videodev2.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *dev = "/dev/video0";
int main(void)
{
int fd;
struct v4l2_capability cap;
fd = open(dev, O_RDWR);
if (fd < 0) {
perror("open");
return -1;
}
if (ioctl(fd, VIDIOC_QUERYCAP, &cap) < 0) {
perror("ioctl");
return -1;
}
printf("driver: %s\n", cap.driver);
printf("card: %s\n", cap.card);
printf("bus_info: %s\n", cap.bus_info);
printf("version: %d\n", cap.version);
printf("capabilities: %x\n", cap.capabilities);
printf("device_caps: %x\n", cap.device_caps);
printf("reserved: %x %x %x\n", cap.reserved[0], cap.reserved[1],cap.reserved[2]);
close(fd);
return 0;
}
返回
driver: uvcvideo
card: HikCamera: UVC Camera
bus_info: usb-0000:02:03.0-1
version: 331719
capabilities: 84a00001
device_caps: 4200001
reserved: 0 0 0