Re: DSPack Video Vorspulen
14. Jul 2007, 17:51
Mahlzeit, ich versuche eine Software zu Stande zu bringen die einzelne Frames eines Videos abspeichert.
Ich habe es hinbekommen, die Frames einzeln zu seeken und mittels VMRGetBitmap auch als Bitmap abzuspeichern, ich habe allerdings noch ein kleines Problem bevor ich mit der Auswertung der Bilder anfangen kann, zu dem ich beim googlen leider nichts finden konnte.
Wird mit der hier beschriebenen Methode ein Frame geseekt wartet das Programm nicht ab das dieser Frame auch im VideoWindow angezeigt wird (weil, wie ich mich von einer Microsoft Developer Seite schlau gemacht hab, jenes Seeken in einem anderem Thread läuft als das Programm.) Die Methode VideoWindow.VMRGetBitmap(Stream) kopiert immer das was im VideoWindow zu sehen ist und die Folge : Von Testweise Hundert Frames die ich hab hintereinander speichern lassen sind in der Regel 10 Stück das selbe Bild da das Videowindow sich noch nicht geupdated hatte.
Ich konnte kein Event finden das genau dann reagiert wenn der neue Frame fertig angezeigt wird. Mir ist es zwar gelungen durch eine Warteschleife die eine etwaige Anzahl an Millisekunden wartet 100 fortlaufende Bilder zu speichern, aber die Methode ist natürlich mehr als unbefriedigend : Schnelle Rechner werden dabei ausgebremst und lahme werden immer noch Frames doppelt speichern.
Das muss doch irgendwie abfragbar sein wann der neue Frame fertig geseekt wurde.
Gruß, ben.
|