Video-Frames importieren

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Video-Frames importieren

Beitrag von Batze »

Ich bräuchte eine Möglichkeit einzelne Frames aus einer Videodatei (mindestens unkomprimiertes Avi, besser noch mehr Formate) als Image zu laden.
Ich habe es mit der "AVIFIL32"-DLL versucht bin aber leider an dem laden als PB-Image gescheitert. :(
Wäre nett wenn jemand eine Lösung wüsste - vielleicht sogar eine flexiblere mit mehr als nur AVI-Support.

mfg batze
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Schau Dir mal das an: Movie2ImageFree

http://www.purearea.net/pb/showcase/sho ... =90&sort=2
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Ja, solch eine Import-Funktion würde ich gerne in mein Programm integrieren. Wie hast du das hergestellt? Konnte dazu jetzt keinen Sourcecode finden. Würdest du den preisgeben?
Oder (wenn nicht) kann man das Programm eventuell über die Komandozeile ansprechen um die Funktionen zu nutzen?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Batze hat geschrieben:... kann man das Programm eventuell über die Komandozeile ansprechen um die Funktionen zu nutzen?
Sag mir wie Du es brauchen könntest...ich werde versuchen es zu implementieren.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Am schönsten wäre natürlich das ganze als DLL einbindbar zu machen, aber das ist wohl doch etwas zu kompliziert.

Schön wäre halt die Möglichkeit Parameter etwa in dieser Form anzugeben:

Code: Alles auswählen

Movie2ImageFree.exe -f [Video-File]   : gibt die Anzahl der Frames eines Videos aus

Movie2ImageFree.exe -i [FrameNr] [Video-File] [BMP-File]   : exportiert einen Frame als BMP-Datei

Movie2ImageFree.exe -i [StartFrameNr]-[StopFrameNr] [Video-File] [BMP-File_$$.bmp]   : Exportiert mehrere Frames als 'Bmp-File_01.bmp', ...
Ist zwar nicht ganz so schnell wie direkt in ein Image zu laden ohne Zwischenspeichern, wäre aber dennoch enorm praktisch.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Batze hat geschrieben:Ist zwar nicht ganz so schnell wie direkt in ein Image zu laden ohne Zwischenspeichern, wäre aber dennoch enorm praktisch.
Ich mache es so wie Du es willst...also erkläre es mir genauer, am besten per PN.

Vieleicht hast Du ja auch ein Beispielmovie mit dem ich testen kann?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

@Dr. Shrek:
Nutzt du VFW oder DirectShow, oder gar was ganz anderes?
Bei VFW gehen nur AVI Dateien bis 1 GB.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

DarkDragon hat geschrieben:@Dr. Shrek:
Nutzt du VFW oder DirectShow, oder gar was ganz anderes?
Bei VFW gehen nur AVI Dateien bis 1 GB.
DirectShow
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
LCD
Beiträge: 107
Registriert: 23.01.2008 13:13
Wohnort: Wien

Re: Video-Frames importieren

Beitrag von LCD »

Batze hat geschrieben:Ich bräuchte eine Möglichkeit einzelne Frames aus einer Videodatei (mindestens unkomprimiertes Avi, besser noch mehr Formate) als Image zu laden.
Ich habe es mit der "AVIFIL32"-DLL versucht bin aber leider an dem laden als PB-Image gescheitert. :(
Wäre nett wenn jemand eine Lösung wüsste - vielleicht sogar eine flexiblere mit mehr als nur AVI-Support.

mfg batze
Bin nicht ganz sicher woran du gescheitert bist, aber bei mir funktioniert es, und zwar so:

Code: Alles auswählen

Procedure AVI_Play(image,frame)
  *ptr=CallFunction(#AviLib,"AVIStreamGetFrame",garray(#Global_pGetFrameObj),garray(#Global_AVI_FirstFrame)+frame)
  If *ptr
    Size=SizeOf(BITMAPFILEHEADER)
    bfh\bfType=$4D42: bfh\bfSize=Size+*ptr\biSize+*ptr\biSizeImage: bfh\bfReserved1=0: bfh\bfReserved2=0: bfh\bfOffBits=Size+*ptr\biSize
    CopyMemory(@bfh, *framebuffer, Size): CopyMemory(*ptr, *framebuffer+ Size, Size): CopyMemory(*ptr+Size, *framebuffer+ Size+ Size, *ptr\biSizeImage)
    CatchImage(image,*framebuffer)
  EndIf  
EndProcedure
Initialisieren muss man das AVI32DLL natürlich schon, und *Framebuffer sollte mindestens 8.3 Mb groß sein damit auch HD-Videos gelesen werden können.
Sorry dass ich da nicht genug Abstände reingemacht habe, aber so programmiere ich halt. Böser LCD, ganz ganz böse.... :mrgreen:
@Dr. Shrek: Würde auch gerne MPG und GIF Import haben, aber über Festplatte als Zwischenspeicher ist das nichts...
PB 4.61Beta1 32/64Bit. AMD FX6100, 8 GB RAM, ATI Radeon 5750, Win7 64 (64 bit ist mist weil 16-Bit Programme wie MakeTZX nicht mehr darauf funktionieren).
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Video-Frames importieren

Beitrag von DrShrek »

LCD hat geschrieben:....@Dr. Shrek: Würde auch gerne MPG und GIF Import haben, aber über Festplatte als Zwischenspeicher ist das nichts...
Ok...Ich mache eine DLL...mit der Du dann die 'Images' im Speicher abholen kannst...

Wäre das was?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten