Lire h264 flux à partir d'une caméra IP

Actuellement, je suis en train d'utiliser opencv pour lire une vidéo à partir de mon Canon VB-H710F caméra.

Pour ce but, j'ai essayé les deux solutions différentes:

SOLUTION 1: Lire le flux rtsp adresse

 VideoCapture cam ("rtsp://root:[email protected]/stream/profile1=u");

 while(true)
  cam >> frame;

Dans ce cas, je suis en utilisant opencv pour lire directement à partir d'un flux encodé en H264 (profile1), mais cela donne le même problème signalé ici http://answers.opencv.org/question/34012/ip-camera-h264-error-while-decoding/
Comme suggéré dans la question précédente, j'ai essayé de désactiver le support FFMPEG en installation opencv, qui a résolu le h264 des erreurs de décodage, mais soulèvent un autre problème.
Lors de l'accès au ruisseau avec opencv, pris en charge par gstreame, il y a toujours un grand retard associé.
Avec cette solution je atteindre 15 FPS mais j'ai un retard de 5 secondes, ce qui n'est pas acceptable, compte tenu que j'ai besoin d'une application en temps réel.

SOLUTION 2: Lire des images à partir d'une adresse http
while(true)
{
startTime=Système.currentTimeMillis();

        URL url = new URL("h t t p://[IP]/-wvhttp-01-/image.cgi");
        URLConnection con = url.openConnection();
        BufferedImage image = ImageIO.read(con.getInputStream());   
        showImage(image);
        estimatedTime=System.currentTimeMillis()-startTime;
        System.out.println(estimatedTime);
        Thread.sleep(5);
}

Cette stratégie simplement extrait l'image à partir de l'url de la caméra fournit. Le code est en Java, mais le résultat est le même en C++ avec la bibliothèque curl.
Cette solution évite les retards de la première solution mais il prend un peu plus de 100 ms pour saisir chaque image, ce qui signifie que je ne peux l'atteindre en moyenne les 10 FPS.

Je voudrais savoir comment je peux lire la vidéo à l'aide de c++ ou d'une autre bibliothèque développée en c++ ?

OriginalL'auteur João Neves | 2014-10-04