C++ 使用V4L2API选择输入通道

C++ 使用V4L2API选择输入通道,c++,input,channel,v4l2,C++,Input,Channel,V4l2,我想选择摄像机设备的输入通道。我可以通过“设置对话框”在VLC中选择它。在高级设置中,我可以将“输入”切换到3,我的相机也可以工作。 现在我想在我的C++应用程序中这样做。我找不到执行此操作的写入方法。目前我的照片是黑色的。我需要选择设备的S-Video频道 您应该看看v4l2 ctl的源代码,它是的一部分。这个工具是用C++/Qt编写的,应该为您自己提供所有需要的信息。更改设备的输入在中处理 希望这有帮助 编辑: 刚刚在官方API文档中找到了相关部分。 他们在那页上有一些如何改变视频输入的例子

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

您应该看看
v4l2 ctl
的源代码,它是的一部分。这个工具是用C++/Qt编写的,应该为您自己提供所有需要的信息。更改设备的输入在中处理

希望这有帮助

编辑: 刚刚在官方API文档中找到了相关部分。
他们在那页上有一些如何改变视频输入的例子

工作完美。非常感谢!:)
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...
}