2014-01-10 9 views
6

zum Beispiel erfassen wir haben RTSP-Stream zu testen wie: "rtsp: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov" (es funktioniert in Moment, um diesen Beitrag zu veröffentlichen)OpenCV - wie RTSP-Videostream

Jetzt möchte ich diesen Video-Stream in openCV (opencv 2.4.7/2.4.8) fangen Ich habe meinen Code funktioniert perfekt auf lokale Filmdateien, aber wenn ich versuche, rtsp zu erfassen, bekomme ich msgs wie: "Konnte nicht //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov“

ich habe versucht, verschiedene Möglichkeiten, wie: Filmdatei rTSP lesen

CvCapture *camera = cvCreateFileCapture("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov"); 
if (camera == NULL) { 
printf("video is null, aborting..."); 
return -1; 
} 
else{ 
printf("video ok"); 
} 

oder:

cv::VideoCapture vcap; 
//open the video stream and make sure it's opened 
if(!vcap.open("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov")) { 
    std::cout << "Error opening video stream or file" << std::endl; 
    return -1; 
} 

Jede Idee?

-

Niedved

Antwort

8

Der folgende Code funktioniert bei mir ohne Probleme. Wenn Sie einen Benutzernamen und ein Passwort für den Stream haben, vergessen Sie nicht, ihn in die URL-Adresse aufzunehmen.

cv::VideoCapture capture(url); 

if (!capture->isOpened()) { 
    //Error 
} 

cv::namedWindow("TEST", CV_WINDOW_AUTOSIZE); 

cv::Mat frame; 

while(m_enable) { 
    if (!capture->read(frame)) { 
     //Error 
    } 
    cv::imshow("TEST", frame); 

    cv::waitKey(30); 
} 
+0

Ich habe diesen Code zu Videocapture hinzugefügt und entlarvte die api aber dies nicht funktioniert –

+1

Haben Sie den ffmpeg DLL in den gleichen Ordner mit der ausführbaren setzen? –

+0

wo bekommt man das? und wohin? Ich versuche Android. In meiner Protokoll-Katze erhalte ich folgenden Fehler-CameraWrapperConnector :: connectToLib FEHLER: kann Kamera wrapper Bibliothek dlopen nicht öffnen 01-05 15: 25: 06.185: E/OpenCV :: Kamera (18562): Native_camera gab Öffnungsfehler zurück: 4 –