2014-10-12 28 views
5

voglio trasmettere un flusso RTSP su Android e ho finalmente sono venuto a conclusione che non posso usare MediaPlayer API di Android, VideoView ecc perché latenza è grande problema per me . Ho bisogno di una latenza di < 500 ms. Ora sono che pianifica di utilizzare Gstreamer o ffmpeg per creare un client rtsp per android. Devo solo pochi dubitaUtilizzando Gstreamer o ffmpeg per creare client RTSP su Android

  1. Sarà la Gstreamer o cliente ffmpeg essere in grado di fornire latenza < 500ms. Ho letto che ci sono alcuni parametri che posso modificare per ottenere una latenza molto bassa. Voglio solo confermare . Ho una buona larghezza di banda della rete. La dimensione della cornice è generalmente 1920X1080.

  2. Ho letto Gstreamer è uno ha fatto un livello sopra ffmpeg e utilizza i codec ffmpeg per funzionare. Voglio sapere con quale è più facile lavorare per creare un client Android. Lavorare su Gstreamer o lavorare direttamente su ffmpeg.

  3. Se utilizzo il client Android Gstreamer, dovrò utilizzare anche il server Gstreamer per eseguire lo streaming dei dati? Attualmente sto usando assistente LIVE555 RTSP per lo streaming di dati

+0

puoi per favore dare qualche motivo per il voto negativo alla mia domanda? –

+0

Hai un grande successo con il lettore rtsp. Sto lottando per ottenere la performance (meno di 1 sec in streaming) puoi condividere la conoscenza – user2934930

+0

@ user2934930 Ni Non ho potuto realizzarlo. La gente di GStreamer mi ha detto che ci sono alcuni bug nella porta Android di GStreamer e non raggiungerò lo streaming a 720P. Sei in grado di trasmettere in streaming a 720P. Il ritardo è anche di più di 2 secondi –

risposta

6

Non posso parlare di ffmpeg, ma per GStreamer:

1) Sì, è possibile ottenere tempi di latenza molto più bassi rispetto 500ms con GStreamer come RTSP cliente. Vedi la proprietà di latenza su rtspsrc (che, ad esempio, è accessibile tramite il segnale di setup-source se usi playbin ... e dovresti). Di default questo è impostato su 2000 millisecondi (che è un valore predefinito sicuro), ma se la rete è abbastanza veloce è possibile impostare questo molto più basso.

2) Ciò dipende dalla vostra esperienza con entrambe le API. Per quanto mi riguarda un'applicazione GStreamer sarebbe molto più facile, e si possono trovare alcuni esempi su internet: https://coaxion.net/blog/2014/08/gstreamer-playback-api/ http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials (tutorial Android)

3) È possibile utilizzare qualsiasi server conforme standard di RTSP, entrambi dovrebbero funzionare. GStreamer ha un'API molto semplice ma potente, ed è inclusa con i binari di GStreamer per Android che puoi ottenere qui: http://gstreamer.freedesktop.org/data/pkg/android/1.4.3/