如何获取Linux(ubuntu)上的视频捕获设备(网络摄像机)列表?(C / C ++)

雷拉:

因此,我所需要的很简单-当前可用的视频捕获设备(网络摄像机)列表。我在简单的C或C ++控制台应用程序中需要它。通过列表,我的意思是类似这样的控制台输出:

1) Asus Web Camera
2) Sony Web Camera

因此,这似乎很简单,但我有一个要求-尽可能使用本机OS API-完全没有外部库-毕竟-我们想要的只是打印出一个列表-不要飞上月球!)

怎么做这样的事情?


也是从这个系列:

蓝狗:

这是我编写的代码段。大概是一本书。我想您可以遍历所有/ dev / videoN节点并获取信息。

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/videodev.h>

int main(){
    int fd;
    struct video_capability video_cap;
    struct video_window     video_win;
    struct video_picture   video_pic;

    if((fd = open("/dev/video0", O_RDONLY)) == -1){
        perror("cam_info: Can't open device");
        return 1;
    }

    if(ioctl(fd, VIDIOCGCAP, &video_cap) == -1)
        perror("cam_info: Can't get capabilities");
    else {
        printf("Name:\t\t '%s'\n", video_cap.name);
        printf("Minimum size:\t%d x %d\n", video_cap.minwidth, video_cap.minheight);
        printf("Maximum size:\t%d x %d\n", video_cap.maxwidth, video_cap.maxheight);
    }

    if(ioctl(fd, VIDIOCGWIN, &video_win) == -1)
        perror("cam_info: Can't get window information");
    else
        printf("Current size:\t%d x %d\n", video_win.width, video_win.height);

    if(ioctl(fd, VIDIOCGPICT, &video_pic) == -1)
        perror("cam_info: Can't get picture information");
    else
        printf("Current depth:\t%d\n", video_pic.depth);

    close(fd);
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从C应用程序(Linux)获取连接的USB摄像机(网络摄像机)的v4l2设备编号

如何使用Java从网络摄像机获取视频和音频流?

C ++ / OpenCV将套接字中的摄像机视频/图像(MJPEG)流式传输到浏览器(Windows 8.1)

C ++ OpenCV 2.4.11:列出所有摄像机

QT,C ++:在QGraphicsview上从摄像机绘制实时图像流的快速方法

在Windows窗体上的C#Opencvsharp 3摄像机捕获

使用C ++查找ONVIF IP摄像机

openCV:尝试了解从摄像机代码捕获视频

检查某些USB端口以在C Linux上获取设备fd

如何使用Vlc.DotNet在Windows Forms C#中流式传输RTSP摄像机供稿

iOS / Obj-C-更改对摄像机文本的请求访问权限?

如何使用C ++和Intel API将.JSON文件加载到RealSense D435摄像机

如何从C ++代码请求Android NDK摄像机许可?

ARCore –如何在C#中将YUV摄像机帧转换为RGB帧?

使用Directshow C#顶部如何在不崩溃的情况下从多个窗口中的多个USB摄像机获取实时供稿

如何旋转摄像机录制的视频?

无法使用OpenCv 3.4.5从具有C ++ dll的IP摄像机(rtsp)抓取帧

WPF和C#捕获网络摄像机和网络摄像机

使用来自网络摄像头的HTML输入类型文件捕获便携式摄像机录制视频

在C#中从网络摄像头捕获图像

可以使用SharpPcap在C#中查找我的网络中的IP摄像机吗

如何从视频中数学获取摄像机跟踪路径

Twilio视频:如何将本地摄像机视频覆盖在远程视频源上?

在 Ubuntu 18.04LTS 上未检测到 Logitech C922 网络摄像头

如何使用 EmguCV c# 在 Content 文件夹中保存 IP 摄像机快照

Unity C# 可以在不禁用其中一台摄像机的情况下切换场景中的摄像机吗?

在 Linux 上的网络摄像头视频捕获期间获取静止帧

C++ 上的设备网络

如何在 Unity C# 中进行有限的摄像机移动