En primer lugar me presento, soy Jose Marco y os escribo desde Barcelona y esta es mi primera intervención en el foro y me parece que no os lo voy a poner fácil
Estoy comenzando un proyecto de decodificación multi-streaming y barajo la posibilidad de utilizar la RasPi como decodificador unitario de flujos de video ,como acabo de iniciarme en el apasionante mundillo de este dispositivo y hay mucha literatura sobre él todavía me falta mucho por aprender por eso he decido postear el en foro a ver si alguno de sus expertos puede darme una pista sobre problema que os detallo a continuación:
Estoy intentando decodificar con una RasPi de 512 con 375Kb libres un flujo de video RTSP (H264,fullHD de 4mb/s) procedente de una cámara IP.
El problema es el retardo o latencia de 8 o 9 seg, es decir el retraso entre el video visualizado y el video en tiempo real imposible de minimizar
ni por parámetro (-nocache) del mplayer o mediante el (mplayer.conf).
Esto es lo que estoy haciendo.
creo un pipe
mknod /home/pi/pipe.mkv
Recibo el flujo rtsp a través del mplayer que lo pasa al pipe
mplayer -benchmark -nosound -framedrop -nocache -dumpvideo rtsp://172.16.23.189/live.sdp -dumpfile /home/pi/pipe.mkv | omxplayer /home/pi/pipe.mkv
El Omxplayer que tiene soporte de aceleración hardware se encarga de decodificar y pintar el stream de video contenido en el pipe.mkv
¿Podría ser el pipe que actua como una FIFO el que está provocando el buffering?
Conocéis algún otro player que soporte de streaming para la RPi y que además tenga aceleración hardware ósea que utilice la el decoder de la GPU.
Sé que VLAN viewtopic.php?f=9&t=1439 está trabajando en ello pero no se como lo tienen.
También he visto que se podría hacer algo similar a esto desde Pyton pero exactamente como.
mplayer = subprocess.Popen(
['omxplayer', url.decode('UTF-8').strip()],
stdout = subprocess.PIPE, stderr = subprocess.PIPE)
Saludos cordiales