2009-07-16 4 views
4

Ich habe versucht, eine Anwendung mit OpenCV und Visual Studio 2008 zu erstellen, um Bilder von einer Webcam aufzunehmen, einen Filter auf sie anzuwenden und sie dann in eine AVI-Datei zu schreiben. Alles funktioniert, außer dem Erstellen der AVI-Datei.Erstellen von AVI-Dateien in OpenCV

Das Problem ist, dass es auf meinem Computer funktioniert, aber es funktioniert nicht auf dem Computer meines Kollegen. Der Grund dafür (glaube ich) ist, dass er nicht über die nötigen Video-Encoder für OpenCV verfügt.

Die cvCreateVideoWriter-Funktion gibt NULL nicht zurück, aber ich am Ende mit einer 0kb-Datei auf der Festplatte.

Antwort

1

Das Problem war, dass mein Kollege eine ältere Version von OpenCV installiert hatte. Wenn ich den neuen OpenCV benutzt habe, hatte er einen Encoder und es hat die ganze Arbeit gemacht. 3.0.0

+0

Können Sie die Version hochladen, auf die Sie ein Upgrade durchgeführt haben? Was ist die neueste Version oder Beta 1.1c? – QueueHammer

+0

Ich habe OpenCV 1.0 verwendet, weil es funktionieren würde. Jetzt haben sie 2.0 veröffentlicht. Ich muss es noch testen. – Ove

18

Warum alle Codecs nicht testen, speichern, um sie zu spielen:

CV_FOURCC('P','I','M','1') = MPEG-1 codec 

CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well) 

CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec 

CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec 

CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec 

CV_FOURCC('U', '2', '6', '3') = H263 codec 

CV_FOURCC('I', '2', '6', '3') = H263I codec 

CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec 

Ein Codec-Code von -1 öffnet ein Codec-Auswahlfenster (in Windows).

+0

Ich habe versucht, und keiner von ihnen funktioniert. Das selbe: cvCreateVideoWriter gibt NULL nicht zurück und ich bekomme eine 0kb AVI Datei – Ove

+4

Woher hast du diese Liste? Gibt es eine Möglichkeit, eine programmgesteuert zu generieren? –

+1

Ich benutzte cv.CV_FOURCC ('i', 'Y', 'U', 'V') und und es hat für mich funktioniert ... Verwenden von Windows 7 mit Python 2.7 und OpenCV 2.2 (Keine der in der obigen Liste arbeitete für mich) – casper

1

In OpenCV, die readme.txt für ffmpeg sagt

„Es ist auch unsere Selbstversorger-Motion-JPEG-Codec, der Sie ohne Sorgen verwenden können. Es behandelt CV_FOURCC ('M', "J", "P", "G") strömen in einem AVI-Container (".avi"). "

(sources \ 3rdparty \ ffmpeg \ readme.txt)

-1 und cv :: VideoWriter :: fourcc ('M', 'J', 'P', 'G') sind die einzigen Optionen das funktioniert für mich unter Windows 8.1.