如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio 模拟器?

How can I send a virtual camera to Genymotion or Android Studio Emulator in Ubuntu?

我使用 v4l2loopback 和 ffmpeg 创建了一个虚拟相机。我用于 ffmpeg 的命令是: ffmpeg -re -l oop 1 -i vin.png -vf format=yuv420p -f v4l2 /dev/video2

vin.png 是我要流式传输到网络摄像头的图像,/dev/video2 是我使用 v4l2loopback 创建的虚拟网络摄像头。 虚拟网络摄像头可以工作,我可以看到它,例如onlinemicetest.com/webcam-test。 我在 Ubuntu 20.40 上使用带有最新 Android API 的 Genymotion 模拟器(我尝试了 7.0、8.1 和 10.0)。 Genymotion 检测到虚拟相机但仅显示虚拟图像: Wrong dummy Image from Genymotion 我也尝试过(并且更愿意使用)android studio 模拟器。但是我只能 select 在设备摄像头配置中的 Webcam0 指向真正的集成摄像头而不是我的虚拟网络摄像头。

我不需要使用 ffmpeg,但我确实需要使用一个工具来控制要从命令行流式传输的图像。

有办法解决吗?非常感谢!

2020 年 11 月 17 日更新: Genymotion 支持人员回答我,他们计划在未来支持虚拟相机。他们可能准备在 2021 年年中添加此功能。

你不能:Genymotion 不支持虚拟相机。参见 https://support.genymotion.com/hc/en-us/articles/360002734498-My-webcam-does-not-work-with-Genymotion-Desktop

使用 OBS 和 Android 模拟器的解决方案:

  1. 按照本教程进行操作:https://blog.jbrains.ca/permalink/using-obs-studio-as-a-virtual-cam-on-linux
  2. 使用这些命令更改您的 obs 场景:https://gist.github.com/nooitaf/9aabf72d00e16a61ea301c69ff38d804
  3. 检查您使用的 /dev/video:v4l2-ctl --list-devices
  4. 检查哪个网络摄像头链接到您的 avd 中的该视频:./emulator -avd Pixel2 -webcam-list
  5. 使用该网络摄像头从命令行启动模拟器:./emulator -avd Pixel2 -camera-back webcam2

1、编辑640480格式的图片,并生成流媒体” ffmpeg -re -l oop 1 -i 640480.png -vf format=yuv420p -f v4l2 /dev/video0".

2、现在genymotion相机设置显示OK了。

3、还是无法从虚拟相机拍照,:(.

genymotion virtual camera test with 640*480 Picture

error in take picture