2016-07-14 11 views
3

OpenCV verfügt über die Klasse VideoCapture, um Videos von externen Quellen zu laden. Ich habe eine Netzwerkkamera in meinem Netzwerk, auf die ich mit RTSP zugreife (mit dem FFMPEG-Plugin).OpenCV VideoCapture-Timeout auf Open oder Constructor?

Die traurige Sache ist, dass es scheint, dass die offene Methode und der Konstruktor beim Öffnen des Videostreams blockieren. Das heißt, wenn der Stream nicht läuft, bleibt das Programm für immer dort stecken.

Gibt es irgendeine Art von Timeout-Fähigkeit? Ich habe versucht, in den Quellcode zu schauen, aber am Ende ruft es externe FFMPEG-Funktionen auf, von denen ich glaube, dass ich nicht weiter gehen kann.

Wenn es kein Zeitlimit gibt, gibt es irgendeine Art von Bibliothek für eine nicht blockierende VideoCapture-Methode für RTSP oder HTTP?

Antwort

2

Obwohl diese Frage ziemlich alt ist, werde ich mehr zusammenfassende Informationen für andere Leute auch liefern.

Es gibt die Möglichkeit, die DLL für ffmpeg für opencv mit einer Wrapper-Bibliothek zu erstellen Github issue verweist auf Peter Repo mit einer Wrapper-Datei (in Zeile 198 ist ein Timeout, das eingestellt werden kann). (Sorry, ich kann keine weiteren Links posten). Solange Sie sich mit Make'ing dies, dann sollten Sie festgelegt werden (dieser Wrapper ist ziemlich einfach, heißt es). Wenn Sie das aktuelle Problem auf GitHub suchen, lesen Sie das oben verlinkte Problem. Dort finden Sie weitere Informationen zum eigentlichen Problem behoben.

Um OpenCV (Python CV2) mit CMake: Example Visual Studio neu zu erstellen.

+0

Bitte akzeptieren Sie diese Antwort, oder sagen Sie mir, warum es nicht akzeptabel ist. –