我正在尝试测试一个使用 OpenCV 进行对象检测的 Android 应用程序。我在 Android Studio(在 Ubuntu 上)中有一个 Android 虚拟设备 (AVD) - 该设备可以将网络摄像头用作摄像头,并且工作正常。
为了加快测试速度,我使用网络摄像头记录了所有对象 - 这些记录在我已导入 OBS 26.1.1 的 MP4 文件中(增加了对 Linux/Ubuntu 的虚拟摄像头支持)。如果我进入 OBS,然后单击“启动虚拟摄像头”,我可以在虚拟摄像头上查看视频 - 这个虚拟摄像头在 Slack、Cheese(Gnome 摄像头应用程序)和Webcam Tests中按预期工作
如果我检查 video4linux,我会得到:
$ v4l2-ctl --list-devices
OBS Virtual Camera (platform:v4l2loopback-000):
/dev/video0
如果我然后检查我的 AVD,我会得到:
$ emulator -avd Pixel_4_API_30 -webcam-list
List of web cameras connected to the computer:
Camera 'webcam0' is connected to device '/dev/video0' on channel 0 using pixel format 'YUYV'
所以(对我来说)看起来 AVD 正在使用 OBS 虚拟相机(/dev/video0
)。但是,如果我然后启动 AVD(使用命令:)emulator -avd Pixel_4_API_30 -camera-back webcam0 -camera-front none
然后尝试使用相机应用程序(标准相机应用程序,而不是我的 OpenCV 应用程序),我会在终端中收到以下警告:
emulator: WARNING: _camera_client_query_stop: Camera '/dev/video0' is not started
emulator: WARNING: _camera_client_query_stop: Camera '/dev/video0' is not started
输出警告后,相机应用程序将关闭。没有其他基于相机的应用程序(在 AVD 中)能够显示虚拟相机的输出。
我设法找到了类似 Stack Overflow 问题的答案(关于带有 OBS 的 AVD) - 但是,这个答案是在 OBS 添加虚拟网络摄像头支持之前的几周。当我到达此答案的第 4 步时,出现以下错误:
$ emulator -avd Pixel_4_API_30 -webcam-list
emulator: ERROR: _camera_device_open: Camera '/dev/video0' is not a video capture device
有谁知道如何解决虚拟网络摄像头无法与 AVD 一起正常工作的问题?我已附加 AVD 配置以获取更多信息:
AvdId=Pixel_4_API_30
PlayStore.enabled=true
abi.type=x86
avd.ini.displayname=Pixel 4 API 30
avd.ini.encoding=UTF-8
disk.dataPartition.size=6G
fastboot.chosenSnapshotFile=
fastboot.forceChosenSnapshotBoot=no
fastboot.forceColdBoot=no
fastboot.forceFastBoot=yes
hw.accelerometer=yes
hw.arc=false
hw.audioInput=yes
hw.battery=yes
hw.camera.back=webcam0
hw.camera.front=emulated
hw.cpu.arch=x86
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=################# REMOVED #################
hw.device.manufacturer=Google
hw.device.name=pixel_4
hw.gps=yes
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.initialOrientation=Portrait
hw.keyboard=yes
hw.lcd.density=440
hw.lcd.height=2280
hw.lcd.width=1080
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images/android-30/google_apis_playstore/x86/
runtime.network.latency=none
runtime.network.speed=full
sdcard.size=2048 MB
showDeviceFrame=yes
skin.dynamic=yes
skin.name=pixel_4
skin.path=/home/chardeemacdennis/Android/Sdk/skins/pixel_4
tag.display=Google Play
tag.id=google_apis_playstore
vm.heapSize=1024