2015-07-17 12 views

risposta

8

Non ricordo la riga di comando vlc che ho usato per il test iniziale. Ho provato alcune cose diverse di recente, su desktop Linux (Ubuntu 15.10).

VLC

Se hai appena pipe l'output in vlc --demux h264 -, sembra funzionare, ma si ottiene a poco a poco più indietro. L'aggiunta di --h264-fps=60 sembra essere d'aiuto, ma si iniziano a ricevere errori ("ES_OUT_SET_(GROUP_)PCR is called too late"). Aggiungere --clock-jitter=0 sembra rendere gli errori meno traumatici, ma è ancora abbastanza incasinato.

ffplay

Un semplice ffplay - opere, ma sembra prendere alcuni secondi per decidere di iniziare, e finisce in ritardo bene dietro tutto il tempo.

Update - gennaio 2018

Utilizzando ffplay -framerate 60 -framedrop -bufsize 16M - ti dà una qualità decente che dura per un bel po '. Ciò è dovuto al comando di sotto che sincronizza il framerate e il bitrate in quanto il video, in caso contrario, cercherebbe di riprodurre a 30fps, rendendo tutto più lento nel tempo a causa dei frame aggiuntivi. Il bitrate consentirà quindi di mantenere il video correttamente sincronizzato nel miglior modo possibile. Ho trovato che funziona entro un ritardo 100-1000MS; allo stesso modo della maggior parte degli auricolari Bluetooth. È possibile che si verifichi un errore "considerare l'aumento della probesize" che potrebbe bloccare il flusso. E 'meglio per riavviare ScreenRecord o provare aggiungendo -probesize 16M

Nota: Questa configurazione con ffplay lavora con il seguente comando adb in filodiffusione in anticipo. Se esegui attività intensive su GPU o usi un telefono precedente, una dimensione di 1280x720 è una raccomandazione migliore. Se il telefono non supporta 60fps (o non sembra registrare in 60fps) il cambiamento fino a quando appropriato con valori come 30 o 24.

adb shell screenrecord --bit-rate=16m --output-format=h264 --size 1920x1080 -

mplayer

Il comando mplayer -demuxer h264es - sembra per ottenere i migliori risultati. Inizia subito, molto poco ritardo, e non impazzisce come VLC.

+0

Sì, 'ffplay' potrebbe usare un po 'di amore. –

18

Dal momento che VLC non è possibile riprodurre il file h264 dall'uscita std adb, mi rivolgo a usare ffplay come giocatore di flusso e funziona tramite il seguente comando:

adb shell screenrecord --output-format=h264 - | ffplay - 

OS X binari ffplay e streaming di schermi:

enter image description here

Grazie !!

+2

Opere Ottimo su Ubuntu, grazie !! – Gautam

+3

Come posso aprirlo in vlc? –

+1

provato su Mac OS X Yosemite e ricevo un "pipe :: dati non validi trovati durante l'elaborazione di input" potrebbe essere perché sto andando su bluetooth. –

1

Sulla base delle risposte sopra ho provato ogni possibile combinazione e c'è solo uno che è non restare molto, non si ferma e ha una qualità video decente, con ffplay:

adb shell screenrecord --bit-rate=16m --output-format=h264 --size 800x600 - | ffplay -framerate 60 -framedrop -bufsize 16M - 

Le dimensioni parametro può essere cambiato in qualsiasi cosa.

Nota questo è ancora lontano dall'essere perfetto, ma ottiene il lavoro svolto e ho anche provato su WiFi ed è stato abbastanza buono.

Problemi correlati