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