Video erzeugen

Alles rund um die Programmierung mit Qt
Antworten
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Video erzeugen

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Video erzeugen

Beitrag von Christian81 »

Was hindert Dich, die Win32-API Funktionen auch in Qt zu benutzen wenn es dort ohne Probleme funktioniert?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Video erzeugen

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Video erzeugen

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Video erzeugen

Beitrag 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: :-1: Fehler: cannot find /: Permission denied

ersetze ich den / durch einen \ bekomme ich:
:-1: 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Video erzeugen

Beitrag von Christian81 »

Wenn es die Datei libvfw32.a gibt, dann muss es -lvfw32 heißen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Video erzeugen

Beitrag von DimitriJunker »

Danke,

da muß man erstmal drauf kommen, daß man nicht den ganzen Filenamen nimmt.
Dimitri
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Video erzeugen

Beitrag von Christian81 »

gcc Grundlagen :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Video erzeugen

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Video erzeugen

Beitrag von Christian81 »

Linkst Du auch korrekt gegen vfw32.lib? Siehe z.B. https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DimitriJunker
Beiträge: 47
Registriert: 8. September 2014 12:12

Re: Video erzeugen

Beitrag 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
Antworten