使用 V4L2 API 选择输入通道

Choosing input channel with V4L2 API

本文关键字:输入 通道 选择 API V4L2 使用      更新时间:2023-10-16

我想选择我的摄像机设备的输入通道。我可以通过"设置对话框"在VLC中选择它。在高级设置中,我可以将"输入"切换到3,我的相机可以工作。现在我想在我的C++应用程序中执行此操作。我找不到执行此操作的写入方法。目前我的照片只是黑色的。我需要选择设备的S视频频道。

你应该看看 v4l-utils 中v4l2-ctl的源代码。该工具是用C++/Qt编写的,应该为您提供自己完成所需的所有信息。更改设备的输入在 v4l2-ctl-io 中处理.cpp

void io_set(int fd)
{
    if (options[OptSetInput]) {
        if (doioctl(fd, VIDIOC_S_INPUT, &input) == 0) {
            struct v4l2_input vin;
            printf("Video input set to %d", input);
            vin.index = input;
            if (test_ioctl(fd, VIDIOC_ENUMINPUT, &vin) >= 0)
                printf(" (%s: %s)", vin.name, status2s(vin.status).c_str());
            printf("n");
        }
    }
    // snip...
}

希望这有帮助。

编辑:刚刚在这里的官方 API 文档中找到了相关部分。他们在该页面上有一些示例,如何更改视频输入。