android - www - install adb on pc
Utilice el comando adb screenrecord para reflejar la pantalla de Android a la PC a través de USB (5)
Basándome en las respuestas anteriores, he probado todas las combinaciones posibles y solo hay una que no se demora mucho, no se detiene y tiene una calidad de video decente, con ffplay:
adb shell screenrecord --bit-rate=16m --output-format=h264 --size 800x600 - | ffplay -framerate 60 -framedrop -bufsize 16M -
El parámetro de tamaño se puede cambiar a cualquier cosa.
Tenga en cuenta que esto aún está lejos de ser perfecto, pero hace el trabajo y también lo probé a través de WiFi y fue lo suficientemente bueno .
He intentado la sugerencia de fadden para reflejar la pantalla de Android en la PC, pero la pantalla del reproductor vlc no muestra nada:
¿Cuáles serían las líneas de comandos correctas para esta función? Gracias.
El uso de cualquiera de los comandos de adb shell
produjo datos dañados para mí. El uso de adb exec-out
, como lo señaló lord-ralf-adolf en un comentario sobre la respuesta aceptada , solucionó el problema.
Utilicé este comando exacto para obtener una calidad de video óptima y un retraso mínimo de un Galaxy S6:
adb exec-out screenrecord --output-format=h264 --size 540x960 - | ffplay -framerate 60 -framedrop -bufsize 16M -
No recuerdo la línea de comando vlc que usé para la prueba inicial. He intentado algunas cosas diferentes recientemente, en el escritorio de Linux (Ubuntu 15.10).
VLC
Si acaba de canalizar la salida en vlc --demux h264 -
, parece que funciona, pero gradualmente se queda más atrás. La adición de --h264-fps=60
parece ayudar, pero comienza a recibir errores (" ES_OUT_SET_(GROUP_)PCR is called too late
"). Añadir --clock-jitter=0
parece hacer que los errores sean menos traumáticos, pero aún así está bastante desordenado.
jugar
Una simple ffplay -
funciona, pero parece tardar unos segundos en decidir comenzar, y termina quedándose muy por detrás de todo el tiempo.
Actualización - enero 2018
El uso de ffplay -framerate 60 -framedrop -bufsize 16M -
le brinda una calidad decente que dura bastante tiempo. Esto se debe al comando a continuación que sincroniza la tasa de cuadros y la tasa de bits, ya que el video intentará reproducirse a 30 fps, lo que hará que todo se vea más lento con el tiempo debido a los marcos adicionales. La tasa de bits ayudará a mantener el video adecuadamente cronometrado lo mejor posible. He encontrado que funciona dentro de un retraso de 100-1000MS ; de manera similar a la mayoría de los auriculares Bluetooth. Es posible que obtenga un error "considere aumentar el tamaño de prueba" que puede congelar la transmisión. Es mejor reiniciar el registro de pantalla o intentar -probesize 16M
Nota: esta configuración con ffplay funciona con el siguiente comando adb canalizado de antemano. Si está ejecutando tareas intensivas de GPU o está usando un teléfono antiguo, una recomendación de un tamaño de 1280x720
es mejor. Si su teléfono no admite 60 fps (o parece que no se graba en 60 fps), cambie hasta que sea apropiado con valores como 30 o 24.
adb exec-out screenrecord --bit-rate=16m --output-format=h264 --size 1920x1080 -
mplayer
El comando mplayer -demuxer h264es -
parece dar los mejores resultados. Comienza de inmediato, con muy poco retraso, y no se asusta como VLC.
Ya que vlc no puede reproducir el archivo h264 desde la salida de ADB STD, paso a usar ffplay como reproductor de secuencias y funciona a través del siguiente comando:
adb shell screenrecord --output-format=h264 - | ffplay -
ffplay reproducción y transmisión binarias OS X:
¡¡Gracias!!
mplayer
Para la reproducción de baja latencia, el mplayer funcionó mejor hasta ahora.
adb shell screenrecord --output-format=h264 - | mplayer -framedrop -fps 6000 -cache 512 -demuxer h264es -
Nota: lo anterior establece el mplayer para consumir cuadros lo antes posible. Aunque, como resultado, la ventana de reproducción puede ser lenta cuando se esperan nuevos cuadros.
El registro de pantalla tiene un límite de tiempo de 3 minutos "característica". Si te sientes cómodo recompilándolo desde el código, aquí hay un buen enlace .
Después de volver a compilar el registro de pantalla:
adb shell screenrecord --time-limit=31000 --output-format=h264 - | mplayer -framedrop -fps 6000 -cache 512 -demuxer h264es -