Ver la pantalla de un celular Android en la pantalla de Linux (usar como WebCam) con scrcpy (Linux 32 y 64 bits desde código fuente)

Editado 2024/08/21. Scrcpy es una aplicación multiplataforma para: Linux, Windows, MAC OS X 

  • Para Linux de 32 y 64 bits está disponible también en Snap
  • Para Ubuntu de 64 bits está disponible desde focal Packages Ubuntu así como para los demás sabores
  • Para Windows y MAC vi un tutorial en Inglés interesante en fossbytes
  • Para MX Linux de 32 bits está disponible en los repo pero no me funciona, la versión de 64 bits no se si funcionará.

 

Si no le funciona scrcpy siga estas instrucciones para instalarlo desde código fuente (este tutorial está hecho en Debian 12 de 32 bit), y  podrá ver la pantalla de mi celular en mi ordenador:

Vertical con Trípode

en esta versión se puede girar la ventana de scrcpy con Alt y las flechas arriba abajo izquierda derecha:


y bueno me he hecho con un alambre un soporte para ponerlo encima de la pantalla de la laptop:


y aquí con más acercamiento:


 

También se pone automáticamente de forma horizontal ejemplo para ver películas de Amazon Prime Video, o Netflix, etc 

 

Por cierto, la ventana de scrcpy se puede redimensionar, se puede hacer más pequeña


Scrcpy en Wikipedia, traducción:

https://en-m-wikipedia-org.translate.goog/wiki/Scrcpy

scrcpy (abreviatura de "copia de pantalla") es una aplicación de duplicación de pantalla gratuita y de código abierto que permite el control de un dispositivo Android desde una computadora de escritorio. [ 1 ] El software es desarrollado por Genymobile SAS, una empresa que desarrolla el emulador de Android Genymotion. [ 2 ]

La aplicación utiliza principalmente Android Debug Bridge (ADB) a través de una conexión USB para comunicarse. El software funciona ejecutando un servidor de forma nativa en el dispositivo Android y luego comunicándose con el servidor a través de un socket a través de un túnel ADB. [ 3 ] El contenido de la pantalla se transmite como video H.264 , que luego el software decodifica y muestra en la computadora. El software envía la entrada del teclado y el mouse al dispositivo Android a través del servidor. [ 3 ]

La configuración implica habilitar la depuración USB en el dispositivo Android, conectar el dispositivo a la computadora y ejecutar la aplicación scrcpy en la computadora. [ 2 ] Se puede acceder a opciones de configuración adicionales, como cambiar la velocidad de bits de la transmisión o habilitar la grabación de pantalla , a través de argumentos de línea de comando . [ 4 ] El software también admite una conexión inalámbrica a través de Wi-Fi , pero requiere más pasos para configurarlo. [ 5 ] Se agregaron algunas funciones a scrcpy en su versión 1.9 en 2019, incluida la capacidad de apagar la pantalla mientras se refleja y copiar el contenido del portapapeles entre los dos dispositivos. [ 6 ]

Chris Hoffman de How-To Geek comparó scrcpy con AirMirror y Vysor, otras dos aplicaciones con una función similar. Hoffman también señaló a Miracast como una alternativa, aunque señaló que ya no es ampliamente compatible entre los nuevos dispositivos Android y que no admite el control remoto del dispositivo. [ 2 ] 

Instalar las dependencias del programa scrcpy

Siguiendo las instrucciones en:

https://github.com/Genymobile/scrcpy/blob/master/doc/linux.md

Ponga en la terminal para Debian/Ubuntu:

sudo apt install ffmpeg libsdl2-2.0-0 adb wget \
                 gcc git pkg-config meson ninja-build libsdl2-dev \
                 libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
                 libswresample-dev libusb-1.0-0 libusb-1.0-0-dev

Luego clone el repositorio y ejecute el script de instalación (fuente):

git clone https://github.com/Genymobile/scrcpy
cd scrcpy
./install_release.sh

Y ya está instalado.

Cuando salga una nueva versión, actualice el repositorio y reinstálelo:

git pull
./install_release.sh

Para desinstalar:

sudo ninja -Cbuild-auto uninstall


Nota: Tenga en cuenta que este proceso simplificado solo funciona para las versiones publicadas (descarga un binario de servidor prediseñado), por lo que, por ejemplo, no puede usarlo para probar la rama de desarrollo (dev).

Opcional: Consulte build.md para compilar la aplicación manualmente.


Instrucciones imprescindibles


- Conectar el cable USB al PC y al celular con Android.

- En su celular asegúrese que está habilitada la depuración USB, para esto hay que habilitar las opciones de desarrollador, esto es todo un trámite y es diferente en cada modelo o versión de Android, así que les dejo esta compilación de consultas:

Prerequisitos

Vealos en: 



a continuación pongo ese enlace tan importante:

Cómo habilitar las Opciones para desarrolladores (Cómo habilitar la depuración por USB en tu dispositivo)

allí además traduciendo dice:

"En algunos dispositivos (especialmente Xiaomi), puede aparecer el siguiente error:

java.lang.SecurityException: Injecting input events requires the caller (or the source of the instrumentation, if any) to have the INJECT_EVENTS permission.

En ese caso, debe habilitar una opción adicional, Depuración USB (Configuración de seguridad) (este es un elemento diferente de la depuración USB) para controlarla mediante un teclado y un mouse. Es necesario reiniciar el dispositivo una vez que se configura esta opción.

Tenga en cuenta que la depuración USB no es necesaria para ejecutar scrcpy en modo OTG."

al dar clic en ese enlace los guiará a un tutorial especializado del fabricante mismo de Android.

Además pongo otras consultas por si les sirvan:

Cómo habilitar la depuración USB de Android - iMobie Inc.
Cómo habilitar la depuración de USB en un dispositivo Android
[Resuelto] Cómo habilitar la depuración USB en un teléfono móvil con Android
¿Qué es la depuración USB? | AndroidPIT
¿Cómo se habilita la depuración USB? -
Cómo configurar las opciones para desarrolladores en el dispositivo
[Resuelto] Activar depuración USB Android con pantalla rota
Cómo activar el modo Depuración USB en Android

En si debe llegar a tener habilitadas las opciones de desarrollo, ejemplo:


Verificando la conección entre su celular y el ordenador

Deben configurar el celular para "Transferencia de archivos" (depende del celular las opciones). Revisen el celular:





para corregirlo le doy clic, lo abro y marco "Transferencia de archivos" :




Una manera eficaz de verificar si hay una buena conexión entre el celular y Linux es usando adb

- En Linux abrir una terminal y poner:

adb devices


la primera que se lo pone puede aparer así:




esto es para que se active adb, luego hay que poner otra vez: adb devices

y debe aparecerles algo así:




Pero si les apareciera así:


deben intentarlo otra vez y revisar el celular, debería aparecerles así:


denle clic allí donde dice: "Permitir siempre desde este ordenador":


y Acepten.


pero si aún después de haber configurado su celular con la depuración USB no funciona, cambien de puerto USB, cambien de cable si está muy viejo, o llevenlo donde el tecnico para que le limpie los contactos del pin del celular.


continuemos


Nota: En el tutorial de scrcpy en Inglés dejaron una nota diciendo lo siguiente:

"En algunos dispositivos, también debe habilitar una opción adicional para controlarlo con el teclado y el mouse:"

pero si ustedes revisan el siguiente enlace verán que todo está en inglés:

https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323


Para lanzar

Poner en la terminal:


scrcpy


Si tienen problemas con el rendimiento del ordenador

Si te sale el siguiente error en la terminal:


$ scrcpy
scrcpy 2.6.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     -->   (usb) c146bb85                       device 2201117TG
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 0.8 MB/s (71112 bytes in 0.086s)
[server] INFO: Device: [Xiaomi] Redmi 2201117TG (Android 13)
[server] ERROR: Encoding error: android.media.MediaCodec$CodecException: Error 0xfffffff4
[server] INFO: Retrying with -m1920...
[server] INFO: Retrying...
INFO: Renderer: opengl
INFO: OpenGL version: 2.1 Mesa 22.3.6
WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)
INFO: Texture: 864x1920
ERROR: [FFmpeg] get_buffer() failed
ERROR: [FFmpeg] decode_slice_header error
ERROR: [FFmpeg] no frame!
ERROR: Decoder 'video': could not send video packet: -1094995529
ERROR: Demuxer error

Intenta usar una de las siguientes resoluciones:

Resoluciones comunes:

  1. 640x360 (para dispositivos de gama baja o para conexiones lentas)

  2. 1280x720 (HD, buena para la mayoría de los dispositivos)

  3. 1920x1080 (Full HD, para dispositivos de gama media-alta)

  4. 2560x1440 (2K, para dispositivos de gama alta)

  5. 3840x2160 (4K, para dispositivos de gama alta más recientes)

Puedes usar estas resoluciones con el comando -m. Por ejemplo en mi ordenador del 2008 que armé con una mainboard que me regaló mi primo Paco me va muy bien con la siguiente resolucón:

scrcpy -m1280

esto es para usar la resolucón: 1280x720S


Si desea usar la resolución 1920x1080 es así:

scrcpy -m1920

La resolución óptima dependerá del modelo de tu celular y de la capacidad de tu computadora para procesar la imagen. Es recomendable empezar con una resolución media como 1280x720 y ajustar según sea necesario.

Problemas con el audio

En la version de scrcpy 2.6 al seguir los pasos anteriores se transmite el audio del Celular Android a la computadora ejemplo al abrir el App de Youtube:


en el Celular se escucha en los parlantes del ordenador cualquier video que reproduzco.

Si no tienes audio el silencio que experimentas podría ser un problema separado. Aquí hay algunas cosas que puedes verificar:

  1. Asegúrate de que el volumen del celular no esté en silencio o muy bajo.

  2. Asegúrate de que el volumen del ordenador no esté en silencio o muy bajo.

  3. Verifica que no haya ningún dispositivo Bluetooth conectado que pueda estar capturando el audio.

  4. Reinicia el celular para ver si se resuelve el problema de audio.

  5. Verifica el cable (prueba con otro)

  6. Verifica los contactos del celular (pin) donde se conecta el cable USB.

Por cierto, no funciona la transmisión de audio en el App Zoom desde el celular al ordenador y viceversa, pero si funciona normalmente el audio del celular y el micrófono. La siguiente imagen es de mi ordenador con Linux Debian 12 bookworm de 32 bit conectado mediante el cable USB con mi celular Xiaomi Readmi Note 11 que tiene Android 13:


en el Monitor del ordenador está abierto Scrcpy 2.6 y allí pueden ver al App Zoom funcionando. Me comunico en la reunión con el micrófono del celular y escucho por los parlantes del celular. Tal vez en alguna nueva versión el audio se pueda enviar y recibir desde el App Zoom por medio de scrcpy al ordenador, pero es funcional.

Comando específico para enviar audio al ordenador

Si quieres transmitir el audio del celular a la computadora de una manera específica, puedes usar la opción experimental de audio de scrcpy:

scrcpy --audio-codec=opus --audio-bit-rate=128K --audio-buffer=50

Grabar la pantalla de Android mientras se controla el Dispositivo Android

Para esto hay que ejecutar scrcpy con --record seguido del nombre del archivo 

ejemplo:


scrcpy --record file.mp4

Nota: Deberán añadir otros comandos si los necesitan allí ejemplo los de la resolución

Si se quiere para crear un video en mkv poner ejemplo así:


scrcpy --record file.mkv



Atajos de Teclado

Se pueden ver poniendo en la terminal:


scrcpy --help

 

Aquí tienes la traducción al español del tutorial:


 Atajos de teclado:

En la siguiente lista, MOD es el modificador de atajos, por defecto, es la tecla Alt izquierda o puede ser la tecla Super izquierda (una vez verificado debe en su mente saber que MOD o es Alt o es Super izquierda) pero puede configurarse mediante --shortcut-mod (ver más arriba).

  •  MOD+f Cambiar al modo de pantalla completa

  •  MOD+Izquierda Rotar la pantalla hacia la izquierda

  •  MOD+Derecha Rotar la pantalla hacia la derecha

  •  MOD+Shift+Izquierda o MOD+Shift+Derecha Voltear la pantalla horizontalmente

  •  MOD+Shift+Arriba o MOD+Shift+Abajo Voltear la pantalla verticalmente

  •  MOD+z Pausar o reanudar la pantalla

  •  MOD+Shift+z Reanudar la pantalla

  •  MOD+g Redimensionar la ventana a 1:1 (ajuste perfecto de píxeles)

  •  MOD+w o Doble clic en los bordes negros Redimensionar la ventana para eliminar los bordes negros

  •  MOD+h o Clic central Hacer clic en HOME

  •  MOD+b o MOD+Retroceso o Clic derecho (cuando la pantalla está encendida) Hacer clic en BACK

  •  MOD+s o Clic 4 Hacer clic en APP_SWITCH

  •  MOD+m Hacer clic en MENU

  •  MOD+Arriba Hacer clic en VOLUME_UP (Subir volumen)

  •  MOD+Abajo Hacer clic en VOLUME_DOWN (Bajar volumen)

  •  MOD+p Hacer clic en POWER (Encender/apagar pantalla)

  •  Clic derecho (cuando la pantalla está apagada) Encender el dispositivo

  •  MOD+o Apagar la pantalla del dispositivo (mantener la duplicación)

  •  MOD+Shift+o Encender la pantalla del dispositivo

  •  MOD+r Rotar la pantalla del dispositivo

  •  MOD+n o Clic 5 Expandir el panel de notificaciones

  •  MOD+Shift+n Colapsar el panel de notificaciones

  •  MOD+c Copiar al portapapeles (inyectar código de tecla COPY, solo en Android >= 7)

  •  MOD+x Cortar al portapapeles (inyectar código de tecla CUT, solo en Android >= 7)

  •  MOD+v Copiar el portapapeles de la computadora al dispositivo y pegar (inyectar código de tecla PASTE, solo en Android >= 7)

  •  MOD+Shift+v Inyectar el texto del portapapeles de la computadora como una secuencia de eventos de teclas

  •  MOD+k Abrir la configuración del teclado en el dispositivo (solo para teclados HID)

  •  MOD+i Habilitar/deshabilitar el contador de FPS (mostrar cuadros por segundo en los registros)

  •  Ctrl+Clic y arrastrar Hacer gesto de pinza para acercar y rotar desde el centro de la pantalla

  •  Shift+Clic y arrastrar Inclinar (deslizar verticalmente con dos dedos)

  •  Arrastrar y soltar archivo APK Instalar APK desde la computadora

  •  Arrastrar y soltar archivo que no sea APK Enviar archivo al dispositivo (ver --push-target)

 



Open Camera para sólo ver la cámara sin controles en el celular

Instalar Open Camera desde:
 
 
o desde:
 
 
y aplicar las siguientes configuraciones:
 










 
 Nota: En Google Play han hecho algunos Forks de Open Camera, es decir otros desarrolladores usaron el código fuente para crear sus propias versiones


Ejemplos de uso

Puede ver los siguientes:

https://github.com/Genymobile/scrcpy/blob/master/README.md#usage-examples


CONSEJOS 

Para evitar que se cierre el programa scrcpy, en Linux evite que se cierre la pantalla en su celular


Desinstalación alternativa

Alternativamente también se lo puede desinstalar así:

sudo rm /usr/local/share/scrcpy/scrcpy-server.jar

sudo rm /usr/local/bin/scrcpy-server.jar

sudo rm /usr/local/bin/scrcpy


Basado en:

Если подключено более 1 устройства то вводим в терминале (Si hay más de 1 dispositivo conectado, ingrese en el terminal)

https://4pda.ru/forum/index.php?showtopic=915423&st=0#entry80070560


Genymobile/scrcpy: Display and control your Android device

https://github.com/Genymobile/scrcpy


scrcpy/BUILD.md at master · Genymobile/scrcpy

https://github.com/Genymobile/scrcpy/blob/master/BUILD.md


Control Android Devices From A Desktop With scrcpy (Ubuntu, Fedora, Debian, Linux Mint Installation) - Linux Uprising Blog

https://www.linuxuprising.com/2019/03/control-android-devices-from-your.html


Scrcpy - 4PDA

https://4pda.ru/forum/index.php?showtopic=915423



Comentarios