Android: ¿Cualquier forma de reducir el retardo de los medios / latencia en VideoView / MediaPlayer?

Estoy tratando de construir una aplicación de Android que tiene en un flujo RTSP y muestra el audio / video. He estado usando VideoView y todavía obtener un retraso entre 3 y 10 segundos de tiempo real. Necesito que esta demora sea inferior a 3 segundos.

En un PC, puedo ver el mismo flujo RTSP utilizando VLC con sólo un segundo de retraso 1-2. ¿Cómo puedo replicar esto en Android? Incluso cuando uso otras aplicaciones como MoboPlayer / RockPlayer, el retraso es de 3 a 10 segundos. (Si importa, me estoy conectando a la corriente RTSP de forma inalámbrica tanto en PC como en Android)

He comenzado a buscar en el uso de FFmpeg para Android, así como el Gstreamer SDK para Android como alternativas a MediaPlayer, pero ambos son difíciles de trabajar con un novato como yo y estoy corriendo en múltiples problemas.

Toda la información sería muy apreciada!

Primero creo que el retraso es debido al tamaño del búfer inicial que es incontrolable en el hardware de Android MediaPlayer . Esto se puede corregir usando el reproductor multimedia SW personalizado como FFMpeg (AVconv ahora) o GStreamer. Pero le costará rendimiento (depende de la compresión de la secuencia de vídeo, la resolución, fps) y la duración de la batería del dispositivo.

Y, por supuesto, el desarrollo nativo utilizando FFMpeg o similar C / C + + marco es complejo y requiere mucho tiempo y experiencia.

Otra opción: puedes probar el nuevo Android 4.1 Java API para acceder al decodificador de vídeo y audio. Y construye tu propio reproductor RTSP usando esta API y algún código para cargar el flujo de video desde el servidor RTSP (probablemente ya existe alguna biblioteca Java).

Android 4.1 Multimedia

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.