wie kann ich die openCV und FFMPEG-video-I/O-eher als die DirectShow man in Windows?
So, ich bin versucht zu schreiben, ein video mit der openCV videoWriter als solche:
writer=cv.CreateVideoWriter(path+"test_output.avi",-1,fps,(W,H),1)
Also statt der Lieferung des FOURCC lieferte ich -1 um zu sehen, welche codecs habe ich zur Verfügung.
Ergebnis war Microsoft RLE, Microsoft Video 1, Intel YUV und Unkomprimiert.
Der Grund ist, dass bei der Konfiguration von openCV mit CMAKE für Visual Studio 10 x64, dies ist, was ich in den video i/o:
Video-I/O: DirectShow
Gibt es eine Möglichkeit, diesen Schalter zu FFMPEG? Ich weiß, das ffmpeg dll vorhanden ist in \3dparty\ffmpeg.
Ich sah für Cmake FFMPEG-flags, fand aber keinen. Die seltsame Sache ist, in der CmakeLists.txt in der opencv-root unter der video-Sektion:
if(UNIX AND NOT APPLE)
<FFMPEG stuff>
elseif(WIN32)
status(" Video I/O:" HAVE_VIDEOINPUT THEN DirectShow ELSE NO)
endif()
Scheint es mir So, dass opencv automatisch auf DirectShow und gibt keine Wahl, der mit FFMpeg.
Oder eher kann man das upgrade Driectshow zur Unterstützung anderer Formate wie Divx oder h264?
Irgendwelche Ideen?
- möglich, Duplikat der Wie kompiliert OpenCV 2.3 mit ffmpeg-Unterstützung mit Visual Studio 2010
- ich sah, dass, aber es gibt KEINE USE_FFMPEG Flagge wie die Antwort suggeriert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort, die Ihr sucht, ist hier, und es funktioniert für die 32-bit-und 64-bit-Konfigurationen. Früher habe ich in diesem build von FFMPEG. http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z
1) Laden Sie OpenCV 2.3
2) Öffnen Sie das root-CMakeLists.txt und fügen Sie die Zeile set(HAVE_FFMPEG 1)
3) Download http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z (oder die 32-bit-bauen, wenn u Lust auf Sie)
4) Bearbeiten avformat.h fand in der ffmpeg gehören dir mit #define INT64_C
5) Bearbeiten cap_ffmpeg_impl.hpp von der highgui-Projekt mit #define snprintf _snprintf
6) in Ihrem highgui Projekteigenschaften unter C/C++ - >Zusätzliche Include-Verzeichnisse hinzufügen Pfad des include-Verzeichnisses von FFMPEG, die Sie gerade heruntergeladen
7)Auf dem gleichen Grundstück Seite unter Linker>Allgemeine>Zusätzliche Bibliothek-Abhängigkeiten fügen Sie den Pfad der lib-Verzeichnis von FFMPEG, die Sie gerade heruntergeladen
8)Auf dem gleichen Grundstück Seite unter Linker>Input>Zusätzliche Abhängigkeiten hinzufügen, ALLE die Namen der Bibliotheken von ffmpeg gefunden in der lib (avformat.lib, avscale.lib, avcore.lib etc)
9) bauen Sie die highgui Projekt
10) Fügen Sie den Pfad von der .dll-Dateien, die kam mit FFMPEG auf der System-Path-Umgebungsvariable.
Das ist es! 10 einfache Schritte 😉
Wenn Sie noch nicht kompiliert OpenCV mit FFMpeg-Unterstützung, die Bibliothek, die hier verlinkten Beitrag bietet einen guten Ausgangspunkt für die Erstellung einer windows-kompatibel FFMpeg wrapper: Machen OpenCV-2.3 Arbeit mit ffmpeg library und Microsoft Visual Studio 2010