c++ v4l2获取摄像头列表
时间: 2023-10-16 17:39:51 浏览: 180
要获取摄像头列表,可以使用 V4L2 库的 VIDIOC_ENUMINPUT ioctl 命令。以下是获取摄像头列表的简单示例代码:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>
int main(int argc, char **argv) {
int fd;
struct v4l2_input input;
fd = open("/dev/video0", O_RDONLY);
if (fd < 0) {
perror("open");
exit(1);
}
printf("Camera list:\n");
for (int i = 0; ; i++) {
memset(&input, 0, sizeof(input));
input.index = i;
int ret = ioctl(fd, VIDIOC_ENUMINPUT, &input);
if (ret != 0) {
break;
}
printf("%d: %s\n", i, input.name);
}
close(fd);
return 0;
}
```
这个程序会依次枚举所有的视频输入设备,并输出它们的名称。可以根据需要修改程序以适应不同的需求。
阅读全文