2013-06-06 20 views
7

Sto provando a creare un'applicazione Android che acquisisca un flusso RTSP e visualizzi l'audio/video. Sto usando VideoView e ancora ricevo un ritardo tra 3 e 10 secondi dal tempo reale. Ho bisogno che questo ritardo sia inferiore a 3 secondi.Android: un modo per ridurre il ritardo/latenza dei media su VideoView/MediaPlayer?

Su un PC, posso vedere lo stesso flusso RTSP utilizzando VLC con solo un ritardo di 1-2 secondi. Come posso replicarlo su Android? Anche quando uso altre app come MoboPlayer/RockPlayer, il ritardo è ancora da 3 a 10 secondi. (Se è importante, mi sto collegando al flusso RTSP in modalità wireless sia su PC che su Android)

Ho iniziato a cercare FFmpeg per Android e Gstreamer SDK per Android come alternative a MediaPlayer, ma loro " Sono entrambi difficili da lavorare per un principiante come me e sto incontrando più problemi.

Qualsiasi e tutte le informazioni sarebbero molto apprezzate!

+1

Chiunque? Sto avendo lo stesso identico problema. – Scot

risposta

1

Innanzitutto ritengo che il ritardo sia dovuto alla dimensione del buffer iniziale che non è controllabile sull'hardware Android MediaPlayer. Questo problema può essere risolto utilizzando un SW media player personalizzato come FFMpeg (AVconv ora) o GStreamer. Ma ti costerà prestazioni (dipende dalla compressione del flusso video, dalla risoluzione, dai fps) e dalla durata della batteria del dispositivo.

E ovviamente lo sviluppo nativo con FFMpeg o C/C++ simile è complesso e richiede molto tempo ed esperienza.

Un'altra opzione: puoi provare il nuovo Android 4.1 Java API per accedere al decodificatore audio e video. E costruisci il tuo lettore RTSP usando questa API e qualche codice per caricare il flusso video dal server RTSP (probabilmente esiste già una libreria Java).

Android 4.1 Multimedia