Seite 1 von 1
Video erzeugen
Verfasst: 12. September 2014 13:16
von DimitriJunker
Hallo,
ich bin dabei ein Programm von Visual C nach QT umzuschreiben. Das meiste war ja relativ einfach, aber jetzt kommt die Videoausgabe. in Visual C hatte ich dazu AVI... Funktionen verwendet also AVIFileOpen zum öffnen, ... AVIStreamWrite um ein Frame anzuhängen,... . Was würdet Ihr unter QT empfehlen? Bei FFMPEG lese ich viel über Probleme. Gibt es etwas einfacheres oder eine einfache Anleitung wie man FFMPEG nutzt? Also es muß fogende Anforderungen erfüllen: Ich baue Ein Bild im Speicher zusammen, z.B. als QImage füge dies als Frame dem Film hinzu, erzeuge da nächste Frame usw. Nur Video kein Ton. Da es per Videoschnitt weiterverarbeitet wird ist mir der Codec erstmal egal solange die Qualität gut ist.
Gruß
Dimitri
Re: Video erzeugen
Verfasst: 14. September 2014 11:13
von Christian81
Was hindert Dich, die Win32-API Funktionen auch in Qt zu benutzen wenn es dort ohne Probleme funktioniert?
Re: Video erzeugen
Verfasst: 17. September 2014 01:28
von DimitriJunker
Irgendwie hatte das mit der Benachrichtigung nicht geklappt, deshalb so spät.
Kann/darf ich die Microsoft-VFW Funktionen denn so einfach in QT verwenden?
Ich ging davon aus, daß es nicht geht und habe deshalb Alternativen gesucht. aber es gibt wirklich ein vfw.h und auch eine LIB. Das vfw.h liefert zwar einige Fehler wie:
C:\Qt\Tools\mingw482_32\i686-w64-mingw32\include\vfw.h:19: Fehler: 'DWORD' does not name a type
DWORD WINAPI VideoForWindowsVersion(void);
aber das sollte lösbar sein
Danke
Re: Video erzeugen
Verfasst: 17. September 2014 18:19
von Christian81
Da Qt auch nur C++ ist sollte es gehen.
Das Problem mit DWORD sollte sich durch ein include von windows.h lösen lassen.
Re: Video erzeugen
Verfasst: 21. September 2014 01:32
von DimitriJunker
Das Compilieren klappt inzwischen, aber beim Linken gibt es Probleme:
F:\osm\dyjtrackQt\dyjtrack\cavifile.cpp:33: Fehler: undefined reference to `AVIFileInit@0'
und andere ähnliche Fehler.
ich habe dann etwas gegoogelt und folgendes ans pro-File angehängt:
Code: Alles auswählen
win32:LIBS += -LC:\Qt\MinGW\i686-w64-mingw32\lib /
-llibvfw32
aber dann bekomme ich:

Fehler: cannot find /: Permission denied
ersetze ich den / durch einen \ bekomme ich:

Fehler: cannot find -llibvfw32
Es gibt:
C:\Qt\MinGW\i686-w64-mingw32\lib\libvfw32.a
also habe ich es mit dem .a versucht, und auch viele andere Variationen, aber immer der gleiche Fehler.
Was muß ich also wo im pro oder sonstwo einfügen, damit die vfw Lib mitgelinkt wird?
Dimitri
Re: Video erzeugen
Verfasst: 21. September 2014 08:55
von Christian81
Wenn es die Datei libvfw32.a gibt, dann muss es -lvfw32 heißen.
Re: Video erzeugen
Verfasst: 21. September 2014 11:23
von DimitriJunker
Danke,
da muß man erstmal drauf kommen, daß man nicht den ganzen Filenamen nimmt.
Dimitri
Re: Video erzeugen
Verfasst: 21. September 2014 18:29
von Christian81
gcc Grundlagen

Re: Video erzeugen
Verfasst: 18. März 2015 00:39
von DimitriJunker
Hallo,
dank der hiesigen hilfe funktionierte alles gut. Ich habe das Projekt zuletzt im Dezember bearbeitet, da lies es sich problemlos compilieren. Jetzt bekomme ich 12 undefined reference, alle Aus den VFW Routinen, u.a.:
F:\osm\dyjtrackQt\dyjtrack\cavifile.cpp:33: Fehler: undefined reference to `AVIFileInit@0'
Wie kann es sein, daß ich nichts geändert habe, aber plötzlich diese Fehler auftauchen?
Gruß
Dimitri
Re: Video erzeugen
Verfasst: 18. März 2015 06:19
von Christian81
Re: Video erzeugen
Verfasst: 19. März 2015 11:31
von DimitriJunker
Hallo,
die spontane Antwort wäre gewesen ja natürlich, das war ja u.a. das Thema dieses Threads und da es bis Dezember ja funktioniert hatte mußte es ja so sein. Aber bevor ich dies hier behaupte habe ich es natürlich nochmal überprüft und es fehlte, wieso ist mir ein Rätsel.
Danke