Delay() bei abspielen von einzelnen Frames mit richtiger FPS
Verfasst: 11.06.2005 15:59
Hi,
bin gerade einen Avi Player am erstellen, der mittels der avifil32.dll und deren Funktion "AVIStreamGetFrame" die einzelnen Frames rausholt und sie als PB Imagefolge im Imagegadget ablaufen lässt.
Jetzt kommts aber auf die Geschwindigkeit an.
Lasse ich normal die Frames hintereinander mittels For I =x to y Next Schleife aus dem Avi rausholen und die Framefolge im Imagegadget anzeigen habe ich niemals die richtigen FPS, mit welchen der Stream abgespielt werden sollte.
Lasse ich in der Schleife einen Delay(x) werkeln, müsste man doch den Wert x irgendwie herausbekommen. So wie ich es verstanden habe ist der Delay in milisekunden angegeben. bei 25 FPS (pal) wären das doch .... hmmm
1000/25 = 40
und bei 29.97 fps (ntsc)
1000/29.97 = 33,367
klappt aber nicht, so würden die Filme viel zu langsam abfahren.
Delay(25) bei 25fps PAL wäre (bei meinem Rechner) perfekt. Delay(29.97) würde einen 29,97fps NTSC Film jedoch nicht richtig sondern im Gegenteil noch weit langsamer ablaufen lassen (ist ja logisch), daher ist das Nonsense.
Entweder ich sollte mal die 3te Klasse wiederholen oder hier habe ich was simples vergessen, was z.B. noch den Wert im Delay beeinflusst - z.B. die Zeit, welche die CPU für dein eigentlichen Prozess braucht!?.
Jemand ne Idee?
Vielen Dank
Inc.
bin gerade einen Avi Player am erstellen, der mittels der avifil32.dll und deren Funktion "AVIStreamGetFrame" die einzelnen Frames rausholt und sie als PB Imagefolge im Imagegadget ablaufen lässt.
Jetzt kommts aber auf die Geschwindigkeit an.
Lasse ich normal die Frames hintereinander mittels For I =x to y Next Schleife aus dem Avi rausholen und die Framefolge im Imagegadget anzeigen habe ich niemals die richtigen FPS, mit welchen der Stream abgespielt werden sollte.
Lasse ich in der Schleife einen Delay(x) werkeln, müsste man doch den Wert x irgendwie herausbekommen. So wie ich es verstanden habe ist der Delay in milisekunden angegeben. bei 25 FPS (pal) wären das doch .... hmmm
1000/25 = 40
und bei 29.97 fps (ntsc)
1000/29.97 = 33,367
klappt aber nicht, so würden die Filme viel zu langsam abfahren.
Delay(25) bei 25fps PAL wäre (bei meinem Rechner) perfekt. Delay(29.97) würde einen 29,97fps NTSC Film jedoch nicht richtig sondern im Gegenteil noch weit langsamer ablaufen lassen (ist ja logisch), daher ist das Nonsense.
Entweder ich sollte mal die 3te Klasse wiederholen oder hier habe ich was simples vergessen, was z.B. noch den Wert im Delay beeinflusst - z.B. die Zeit, welche die CPU für dein eigentlichen Prozess braucht!?.
Jemand ne Idee?
Vielen Dank
Inc.