Ich streame H264-Inhalte von einer IP-Kamera mit dem VideoCapture von OpenCV (kompiliert mit ffmpeg-Unterstützung).
Bisher läuft alles gut, aber ab und zu bekomme ich Dekodierungsfehler (von ffmpeg vermute ich):
%Vor%Diese Nachrichten werden in der Konsole angezeigt. Gibt es eine saubere Möglichkeit, diesen zuzuhören? Ich würde gerne die Glitchy Frames verarbeiten.
Irgendwelche Hinweise / Tipps?
vor kurzem habe ich das gleiche Problem gelöst und versuche, die Schritte zu erklären, denen ich folgte.
Ich habe die neueste opencv_ffmpeg.dll aktualisiert (ich habe opencv_ffmpeg.dll in opencv_ffmpeg310.dll umbenannt) zu verwenden mit OpenCV 3.1, auch umbenannt dieselbe DLL opencv_ffmpeg2412.dll zur Verwendung mit OpenCV 2.4.12
Dadurch wurde eine grundlegende Erfassung von Frames und Display ohne Probleme erfolgreich. Aber das gleiche Problem, wenn ich eine Bildverarbeitung oder Erkennung mache, verursacht eine Verzögerung zwischen der Aufnahme von Frames.
Um das zweite Problem zu lösen, habe ich einen Thread verwendet, um Frames fortlaufend zu erfassen und ein globales Mat
für die Verarbeitung zu aktualisieren.
hier Sie können meinen Testcode finden (er benötigt einige Verbesserungen wie Mutex und Lock Memory beim Update der Mat)
Ich hoffe, dass die Information nützlich sein wird (Entschuldigung für mein schlechtes Englisch)
Ich habe das gleiche Problem. Es scheint mir, dass das Problem von der Tatsache herrührt, dass die Quelle, die den Strom erzeugt, langsamer ist als die eine Entschlüsselung. Wahrscheinlich haben Sie für die Dekodierung eine Endlosschleife, die Frames liest und entschlüsselt, was möglicherweise schneller ist als das, was Ihre Quelle Ihnen senden kann.
Ich weiß nicht, wie ich anhalten und warten soll, bis der Puffer voll ist. Ich benutze eine Datei, so dass meine Kameraquelle eine Datei schreibt und ich Frames daraus in meinem Dekodierprogramm lese. Bisher konnte ich sie nicht synchronisieren