如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?
Posted
技术标签:
【中文标题】如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?【英文标题】:How can I send a virtual camera to Genymotion or Android Studio Emulator in Ubuntu? 【发布时间】:2021-03-08 11:12:09 【问题描述】:我使用 v4l2loopback 和 ffmpeg 创建了一个虚拟相机。我用于 ffmpeg 的命令是: ffmpeg -re -l oop 1 -i vin.png -vf 格式=yuv420p -f v4l2 /dev/video2
vin.png 是我想流式传输到网络摄像头的图像,/dev/video2 是我使用 v4l2loopback 创建的虚拟网络摄像头。 虚拟网络摄像头有效,我可以看到它,例如与onlinemicetest.com/webcam-test。 我在 Ubuntu 20.40 上使用 Genymotion 模拟器和最新的 android API(我尝试了 7.0、8.1 和 10.0)。 Genymotion 检测到虚拟相机,但只显示一个虚拟图像: Wrong dummy Image from Genymotion 我也尝试过(并且更愿意使用)android studio 模拟器。但是我只能在设备摄像头的配置中选择 Webcam0,它指向真正的集成摄像头,而不是我的虚拟摄像头。
我不需要使用 ffmpeg,但我确实需要使用一个工具来控制从命令行流式传输的图像。
有没有办法解决这个问题?非常感谢!
2020 年 11 月 17 日更新: Genymotion 支持人员回答我说,他们计划在未来支持虚拟摄像机。他们可能已准备好在 2021 年中期添加此功能。
【问题讨论】:
你试过bluestacks.com 不幸的是,Bluestacks 不能在 linux 上运行 【参考方案1】:您不能:Genymotion 不支持虚拟相机。见https://support.genymotion.com/hc/en-us/articles/360002734498-My-webcam-does-not-work-with-Genymotion-Desktop
【讨论】:
但我实际上使用 manycam 让它在 Windows 中工作...... @ykasur 你能给我一个链接吗?【参考方案2】:使用 OBS 和 Android Emulator 的解决方案:
-
关注本教程:https://blog.jbrains.ca/permalink/using-obs-studio-as-a-virtual-cam-on-linux
使用这些命令来改变你的 obs 场景:https://gist.github.com/nooitaf/9aabf72d00e16a61ea301c69ff38d804
检查您使用的是哪个/dev/video:v4l2-ctl --list-devices
检查哪个网络摄像头链接到您的 avd 中的视频:./emulator -avd Pixel2 -webcam-list
使用该网络摄像头从命令行启动模拟器:./emulator -avd Pixel2 -camera-back webcam2
【讨论】:
【参考方案3】:1、编辑640480格式的图片,生成流" ffmpeg -re -l oop 1 -i 640480.png -vf 格式=yuv420p -f v4l2 /dev/video0"。
2、现在genymotion相机设置显示OK了。
3,但还是无法从虚拟相机拍照,:(.
genymotion virtual camera test with 640*480 Picture
error in take picture
【讨论】:
可能genymotion只匹配特定格式的流媒体,对于640*480显示不错。 如何扩大分辨率? 640x480 这是非常非常差的质量。如何至少扩展到720p?以上是关于如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?的主要内容,如果未能解决你的问题,请参考以下文章