我想选择我的VideoCamera设备的输入通道。我可以在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文档here中找到了相关部分。
他们在该页面上有一些如何更改视频输入的示例。

10-08 05:47