我没有尝试从 Unity3D 访问虚拟 v4l2 相机。
虚拟相机是使用 gstreamer 创建的
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=640,height=480 !v4l2sink device=/dev/video1
并在使用时像
gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink
v4l2-ctl 的输出
v4l2-ctl --list-formats-ext -d /dev/video1
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
但是该应用程序 - 与 /dev/video0 上的网络摄像头本身配合得很好 - 当指向 /dev/video1 时,它什么也不显示。
在 ~/.config/unity3d 中查看 Player.log 我发现
Camera 0: HP HD Camera (/dev/video0)
(Filename: Line: 93)
Camera 1: Dummy video device (0x0000) (/dev/video1)
(Filename: Line: 93)
UnityEngine.WebCamDevice[]
(Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Error dequeuing image buffer: No such file or directory
(Filename: Line: 326)
我不确定如何从这里着手修复统一应用程序和/或 gstreamer 管道中的一些错误。