¿Hay alguna manera de ver la pantalla del dispositivo *en vivo* en la PC, a través de ADB? [duplicar]

Soy un vlogger y después de obtener HTC Desire HD, descubrí que su cámara era todo lo que necesitaba. Sin embargo, normalmente tengo que verme mientras grabo un video para controlar mis expresiones faciales, y con una cámara trasera simplemente no es posible.

Sé que ADB permite capturas de pantalla, pero ¿hay alguna forma de transmitir la salida de la pantalla a la pantalla de mi PC? No necesariamente a más de 20 fps, bastará con un par de fotogramas por segundo.

¿Es esta pregunta realmente un duplicado? El otro solo pregunta cómo duplicar la pantalla. Este pide hacer eso a través de ADB específicamente

Respuestas (4)

Pruebe la aplicación Screencast de Android .

Vea el hilo de XDA para más detalles.

Se ve bien y responde a la pregunta que puse en el título de mi hilo... Pero, irónicamente, muestra la barra negra en lugar de la salida de la cámara. Supongo que es como imprimir una pantalla de Windows Media Player: terminas con todo excepto el video en sí :(
No estoy seguro de por qué tuvo ese problema, pero incluso si funcionó correctamente, solo le brinda una frecuencia de actualización de 4-5 fps, que está lejos de "En vivo".
Dudo que pueda canalizar la salida de la cámara de su teléfono a otro dispositivo. ¿Ha probado un enfoque más basado en hardware, como configurar un espejo? :)

Registro de pantalla

screenrecordes un ejecutable interno de Android que vuelca la pantalla en un archivo, y ffplaydesde ffmpeg puede reproducir una transmisión codificada H.264 desde stdin

Primero habilite el acceso USB ADB y luego en Ubuntu:

sudo apt-get install adb ffmpeg    
adb exec-out screenrecord --output-format=h264 - |
   ffplay -framerate 60 -probesize 32 -sync video  -

Es posible que tengas que hacer que la pantalla se mueva un poco antes de ver algo:

ingrese la descripción de la imagen aquí

Demostración sin cortes: https://www.youtube.com/watch?v=fVgeoMYm61Q

Explicación de los parámetros:

Ver también: Use el comando adb screenrecord para duplicar la pantalla de Android a la PC a través de USB

Probado en Ubuntu 20.04, Android 11, Pixel 3a.

El video comienza más rápido con un tamaño de sonda más pequeño. Obtuve buenos resultados con ffplay -framerate 60 -probesize 32 -sync video -"-framerate 60" que elimina el efecto de retraso y "-sync video" descarta los cuadros en lugar de avanzarlos rápidamente.
¡Exactamente lo que estaba buscando! No quería instalar una aplicación solo para tomar una captura de pantalla cuando las políticas de seguridad la restringían. Para que conste, me funcionó en Ubuntu 18.04 con Android 7.0.
@b_laoshi genial, agregó el nuevo informe de versiones de trabajo a la respuesta.
Alguien sabe si esto podría hacerse trabajando en Windows? En PowerShell ejecuté adb shell screenrecord --output-format=h264 - | ffplay -framerate 60 -probesize 32 -sync video -pero no aparece ninguna ventana de vista previa. adb shell screenrecord --output-format=h264 -parece funcionar bien para la salida estándar.
Pregunta básica de @Constructor, ¿ ffplayfunciona en su sistema? Por ejemplo, con un mp4 normal :-)
¡Sí lo hizo! Es cierto que no uso ffplay todos los días, pero cuando lo hice , funcionó ffplay some.mkvcon una ventana de vista previa básica (alguna información de video: Stream #0:0: Video: h264 (High), yuv420p(progressive), 1296x972, 25 fps, 25 tbr, 1k tbn, 2k tbc (default), por lo que parece que h264 no es el problema)
@Constructor OK. Tengo que depurar más entonces. Por ejemplo, asegúrese de que stdout salga y entre en ffplay, compárelo con la entrada del archivo.
Adición: debe usar adb exec-out ...en lugar de adb shell ..., este último parece modificar los datos para propósitos de shell interactivo mientras exec-outque no lo hace.
@Bowi gracias por esta información, ¿puede proporcionar un hilo que hable sobre eso con más detalle? Por ejemplo, ¿proporcionar una secuencia de salida específica de muestra que se modifica?
@CiroSantilli郝海东冠状病六四事件法轮功, esto: stackoverflow.com/a/31401447/6403504 y, basándome en ello, esto: stackoverflow.com/a/13587203/6403504
Lo tengo funcionando en macOS Big Sur con Pixel 4 y Pixel 2. Excelente solución
Ejemplo de comando para jugar con el reproductor IINA :adb shell screenrecord --output-format=h264 - | iina --stdin --keep-running --mpv-framerate=30 --mpv-untimed --mpv-framedrop=no --mpv-correct-pts=no

Algunos teléfonos Android tienen capacidades de salida de TV, generalmente a través de USB o HDMI , pero a veces a través del conector de audio 3.5 . Sin embargo, no creo que HTC Desire tenga ninguna capacidad de salida de TV.

Airdroid es todo lo que necesitas. Simple y fácil de usar. Puede ver la salida de su cámara en vivo, pero por alguna razón no puede grabarla. Su PC y su teléfono Android deben estar en la misma red WiFi.

Airdroid funciona a través de WiFi AFAIK. OP quería una solución para ADB (a través de USB). También quería ver la pantalla del dispositivo en directo , es decir, sin ningún retraso o con un retraso mínimo. Si no se agregó recientemente, Airdroid no es compatible con eso en mi humilde opinión.