Alimentar una imagen a la cámara Genymotion

Contexto:

Uso WhatsApp en Genymotion. Chatear en WhatsApp a través de Genymotion está bien, excepto que también deseo habilitar la web de WhatsApp, para poder liberarme de abrir la ventana de genymotion todo el tiempo, en cambio, podría tener todo en el navegador de mi máquina host.

Para habilitar WhatsApp Web, se requiere escanear un código QR generado en la web.

Lo que quiero hacer:

  • Abre web.whatsapp.com
  • Tome una captura de pantalla, recorte solo el código QR
  • Hacer que la imagen esté disponible en Genymotion
  • Introduzca esa imagen en la cámara de vista previa, que a su vez estará disponible cuando abra la activación web de WhatsApp en WhatsApp.
  • La aplicación de WhatsApp entonces pensaría en la fuente como si estuviera en vivo, por lo tanto, habilitaría la autorización.

Resumen:

Deseo alimentar una imagen para mostrarla en la vista previa de la cámara Genymotion. ¿Cómo puedo hacer eso?

¿Qué sistema operativo estás usando?
@xdevs23 estoy usando Ubuntu
Luego pruebe la sugerencia para Linux a continuación. En caso de que eso no ayude, probar otro software de cámara virtual debería ayudar.

Respuestas (6)

No pude hacer que esto funcionara en Ubuntu 18.04. Esto es lo que encontré:

  • Los repositorios de Ubuntu contienen un programa llamado Webcamoid que puede crear una cámara virtual que utiliza sus escritorios como entrada de la cámara.
  • Sin embargo , la versión de Webcamoid que está instalada en sudo apt install webcamoidel momento de escribir este artículo (versión 8.1.0+dfsg-7) muere debido a una falla de segmentación . Puede solucionar este problema descargándolo desde el sitio web de webcamoid .
  • Para crear una cámara virtual con Webcamoid, también necesita instalar v4l2loopback, por ejemplo, usando sudo apt install v4l2loopback-utils.
  • La cámara virtual se creará como /dev/video*(por ejemplo, /dev/video0).
  • Incluso con todo esto, Genymotion no detecta la cámara. Sospecho que está buscando dispositivos USB en lugar de solo mirar archivos /dev/video*. El wiki de Webcamoid dice : "Si los programas detectan las cámaras web enumerando los dispositivos USB, los programas no podrán detectar la cámara web, pero será posible en el futuro".

Entonces, la respuesta en Ubuntu parece ser que aún no es posible, pero puede serlo en el futuro. Sospecho que cualquier otro software de Linux que intente crear una cámara virtual se encontrará con este mismo problema.

Actualización 2020-03: observo que la wiki de Webcamoid ahora muestra que las versiones de desarrollo de Webcamoid admiten el uso de akvcam como controlador de cámara virtual. No lo he probado, pero su tabla de compatibilidad sugiere que muchos programas que no encontraron la cámara usando v4l2loopback la encuentran con akvcam.

Lo hice funcionar usando la versión 2.6.1 de Manycam de 2010 , ya que la última versión de Manycam tiene restricciones.

Como puede observar al escanearlo ( https://www.virustotal.com/gui/file/057cb7702e9ad97ee34f8d127d08699c11b6580a02c3f60500ecf4d345b141a4/detection ), el software incluye una barra de herramientas. Por lo tanto, preste atención durante la instalación para desmarcar la instalación de la barra de herramientas.

La aplicación intentó conectarse a Internet (tal vez estaba buscando actualizaciones, pero no tuve tiempo de analizarlo, lo bloqueé con mi firewall sin ningún problema de uso. Genymotion detectó la cámara como "webcam 1", abra Manycam y puede usar una imagen fija con el QR como fuente .

Si está usando Windows, puede usar algo como Manycam para emular una cámara y proporcionarle la imagen que desee (Fuente: https://softwarerecs.stackexchange.com/questions/36515/fake-virtual-camera-and-microphone- para Windows )

Para Linux y macOS , puede usar un programa como WebcamStudio (Fuente y guía: http://marcelog.github.io/articles/android_emulator_linux_virtual_webcam_video_device.html )

En Genymotion, puede elegir usar esa cámara emulada y listo.

Logré resolver este problema en Ubuntu usando DroidCam. Creo que también puede funcionar en Windows. Aquí hay un buen tutorial sobre cómo instalarlo:

http://ubuntuhandbook.org/index.php/2016/12/install-droidcam-ubuntu-16-04/

Acabo de tener el mismo problema y, por lo tanto, encontré esta publicación. Logré resolver el problema (sin embargo, simplemente tomando una foto con mi teléfono del código QR y escaneándolo en Genymotion usando la cámara web de la computadora que se pudo conectar fácilmente).

Sin embargo, el siguiente problema es que para usar Whatsapp Web (o, como intenté, usar Franz), el "teléfono" debe estar conectado a Internet, lo cual no es así, cuando cierro Genymotion, que era el razón por la que quería hacer eso.

En caso de que alguien más encuentre esto y tenga la misma situación ;-)

Usando Xubuntu 20.04 conseguí que esto funcionara.

Lo que necesitas para esto es ffmpegy v4l2loopback; ambos están en apto. Asegúrese de modprobey rmmoden v4l2loopback cada vez que haga algo para restablecer completamente el dispositivo ficticio. Puede depurar un poco con Webcamoid, que es menos exigente que Genymotion para el dispositivo virtual. El truco es que la imagen o video (en la versión actual de Genymotion 3.2.1 en mi caso) debe ser de 640x480 . Los desarrolladores dijeron que están investigando esto, pero hasta el momento no está disponible. Luego, hará algo similar a lo siguiente (reemplazando /dev/video2según sea necesario para su Dummy)

ffmpeg -f x11grab -r 60 -s 640x480 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video2

Ahora, con esta pequeña resolución, debe reducir la ventana del escritorio de WhatsApp lo más pequeña que pueda, mantenga presionada la tecla Alt para agarrar cualquier parte de la ventana con el mouse para seguir moviéndola, ya que incluso la barra de herramientas superior deberá estar fuera de la parte superior de la pantalla...

El código QR aparece en la parte superior izquierda, el dispositivo emulado en Genymotion lo verá fácilmente (haga clic en el elemento de la cámara y seleccione esta cámara ficticia en el dispositivo emulado, se mostrará una vista previa) y podrá habilitar WhatsApp.

Sin embargo, como se indicó, Genymotion debe estar ejecutándose en algún lugar ; de lo contrario, ninguno de los mensajes llegará al escritorio de WhatsApp.