2015-07-17 4 views

Odpowiedz

8

Nie pamiętam linii poleceń vlc, której użyłem do wstępnego testowania. Ostatnio wypróbowałem kilka różnych rzeczy na komputerowym systemie Linux (Ubuntu 15.10).

VLC

Jeśli tylko rura wyjście do vlc --demux h264 -, wydaje się działać, ale można dostać się stopniowo dalej w tyle. Dodanie --h264-fps=60 wydaje się pomóc, ale zaczynasz dostawać błędy ("ES_OUT_SET_(GROUP_)PCR is called too late"). Dodanie --clock-jitter=0 wydaje się sprawić, że błędy będą mniej traumatyczne, ale nadal jest całkiem spartaczone.

ffplay

Prosty ffplay - prace, ale wydaje się trwać kilka sekund, aby zdecydować się na start, a kończy się w tyle za dobrze przez cały czas.

Aktualizacja - styczeń 2018

Korzystanie ffplay -framerate 60 -framedrop -bufsize 16M - daje przyzwoitą jakość, która trwa od dłuższego czasu. Wynika to z polecenia poniżej, które synchronizuje szybkość klatek na sekundę i bitrate, ponieważ wideo będzie próbowało odtworzyć z prędkością 30 klatek na sekundę, dzięki czemu wszystko będzie wyglądać/będzie wolniejsze w miarę upływu czasu z powodu dodatkowych klatek. Szybkość bitowa pomoże w utrzymaniu wideo w odpowiednim czasie, najlepiej jak to możliwe. Znalazłem, że działa w ramach opóźnienia 100-1000MS; podobnie jak większość zestawów słuchawkowych Bluetooth. Może pojawić się błąd "Zastanów się nad zwiększeniem sondowania", który może zablokować strumień. Najlepiej, aby ponownie spróbować screenrecord lub dołączanie -probesize 16M

Uwaga: Ta konfiguracja z ffplay współpracuje z następującym adb komendy odprowadzone wcześniej. Jeśli używasz intensywnych zadań GPU lub używasz starszego telefonu, lepszym rozwiązaniem jest rozmiar 1280x720. Jeśli telefon nie obsługuje 60 kl./s (lub nie wydaje się, aby nagrać w 60fps) zmianę aż odpowiednio z wartościami takimi jak 30 lub 24.

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

mplayer

Komenda mplayer -demuxer h264es - wydaje aby uzyskać najlepsze wyniki. Zaczyna się natychmiast, bardzo niewielkie opóźnienie i nie odstaje jak vlc.

+0

Tak, 'ffplay' może użyć trochę miłości. –

18

Od vlc nie może odtworzyć pliku H264 z adb wyjście std, zwracam się do korzystania ffplay jako odtwarzacza strumieniowego i działa poprzez następującą komendę:

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

OS X binarnych ffplay i streamingu ekranów:

enter image description here

Dzięki!

+2

Działa Świetne na Ubuntu, dzięki! – Gautam

+3

Jak mogę to otworzyć w VLC? –

+1

wypróbowałem to na Mac OS X Yosemite i otrzymałem "pipe :: Nieprawidłowe dane znalezione podczas przetwarzania danych wejściowych" mogło być, ponieważ przechodzę przez bluetooth. –

1

Na podstawie odpowiedzi powyżej Próbowałem wszystkich możliwych kombinacji i nie jest jedynym, który jest nie tyle dużo, nie zatrzymuje się i ma przyzwoitą jakość obrazu, z ffplay:

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

Wielkość Parametr można zmienić na cokolwiek.

Pamiętaj, że to wciąż daleki od ideału, ale dostaje pracę, a ja też wypróbowałem to przez WiFi i było wystarczająco dobre.