2014-10-12 45 views
5

Chcę streamować strumień rtsp na Androida i wreszcie doszedłem do do wniosku, że nie mogę korzystać z MediaPlayer API, Videoview itp., Ponieważ opóźnienie jest dla mnie dużym problemem . Potrzebuję opóźnienia < 500 ms. Teraz jestem planuję użyć Gstreamer lub ffmpeg do stworzenia klienta Android rtsp. Mam tylko kilka wątpiUżywanie Gstreamer lub ffmpeg do tworzenia klienta rtsp na Androidzie

  1. Czy Gstreamer lub klient ffmpeg móc zapewnić latencji < 500ms. Czytam, że są pewne parametry, które mogę poprawić, aby uzyskać bardzo małe opóźnienie. Po prostu chcę potwierdzić . Mam bardzo dobrą przepustowość sieci. Rozmiar ramki to zazwyczaj 1920X1080.

  2. Czytam Gstreamer jest jeden wykonany jeden poziom wyżej ffmpeg i używa ffmpeg kodeki do pracy. Chcę wiedzieć, z którym łatwiej pracować przy tworzeniu klienta Android. Praca na Gstreamer lub praca bezpośrednio na ffmpeg.

  3. Jeśli korzystam z klienta Android Gstreamer, czy będę musiał korzystać z serwera Gstreamer, aby przesyłać strumieniowo dane? Obecnie używam serwera Live555 RTSP do strumienia danych

+0

czy możesz podać powody, dla których głosowanie nie jest ważne? –

+0

Czy masz duży sukces z odtwarzaczem rtsp. Staram się osiągnąć wydajność (mniej niż 1 sekundę w strumieniu) możesz podzielić się wiedzą – user2934930

+0

@ user2934930 Ni Nie mogłem tego osiągnąć. Ludzie z GStreamer powiedzieli mi, że jest jakiś błąd w porcie Androida GStreamera, a ja nie osiągnę strumienia w 720P. Czy możesz przesyłać strumieniowo w 720P. Opóźnienie to także ponad 2 sekundy. –

Odpowiedz

6

Nie mogę mówić o ffmpeg, ale dla GStreamer:

1) Tak, można uzyskać znacznie mniejsze opóźnienia niż 500ms z GStreamer jako RTSP klient. Zobacz właściwość latency na rtspsrc (która np. Może być dostępna poprzez sygnał setup-source, jeśli używasz playbin ... i powinieneś). Domyślnie jest to ustawione na 2000 milisekund (co jest bezpieczną wartością domyślną), ale jeśli sieć jest wystarczająco szybka, możesz ustawić to znacznie niżej.

2) To zależy od Twojego doświadczenia z obydwoma interfejsami API. Dla mnie to aplikacja GStreamer byłoby znacznie łatwiejsze, a można znaleźć kilka próbek w internecie: https://coaxion.net/blog/2014/08/gstreamer-playback-api/ http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials (Android tutoriale)

3) można użyć dowolnego standardowego conformant serwer RTSP, oba powinny działać. GStreamer ma bardzo prosty, ale potężny interfejs API i jest dołączony do plików binarnych GStreamer dla Androida, które można uzyskać tutaj: http://gstreamer.freedesktop.org/data/pkg/android/1.4.3/