SDV Media 支持通过 Linux V4L2 API 使用摄像机。您可以直接使用 V4L2 API,但我们建议应用开发者使用用户空间帮助程序库。例如:
支持的缓冲区模式
上游 V4L2 维护人员认为 USERPTR 缓冲区模式已废弃,因此 SDV Media 不支持此模式。请改用 MMAP 或 DMABUF 模式 。
使用摄像机
虚拟机监控程序公开的每个视频设备(摄像机、编码器和解码器)都将显示为名为 /dev/videoN(N 为数值)的单独设备。
应用可以使用 VIDIOC_QUERYCAP ioctl 查询
视频设备的功能。摄像机设备 报告支持 V4L2_CAP_VIDEO_CAPTURE
或 V4L2_CAP_VIDEO_CAPTURE_MPLANE。
如需详细了解视频捕获流程,请参阅 Linux API 的视频:输入/输出。
请考虑以下代码示例:
配置视频环回设备
为了进行测试,SDV Media 提供了一个 v4l2loopback 内核模块,该模块可用于在 guest 虚拟机中完全模拟摄像机。默认情况下,它会初始化单个虚拟摄像机设备。如需添加更多设备,请通过内核命令行将配置参数传递给该模块。例如,如需初始化 4 个设备,请添加:
v4l2loopback.devices=4
如需查看可用模块选项的完整列表,请参阅 v4l2loopback README或 Android 内核 代码库中的模块源代码。