[gelöst] Avi-Datei Spieldauer in Sekunden(AVIStreamLength)
-
Hallo,
ich glaube, ich sehe gerade den Wald vor lauter Bäumen nicht:
Ich würde gerne die Spieldauer einer per AVIFileOpen aus der vfw.h geöffneten Datei herausfinden.
Kann es denn sein, dass ich erst mittels AVIStreamLength() die Frameanzahl ermitteln muss, und dann die Millisekunden pro Frame ermitteln muss (AVIStreamSampleToTime), nur um dann mir das selbst auszurechnen?
Kann doch nicht sein
Gruß
R
-
Nein. Es gibt eine Funktion AVIFileInfo die (wie der Name schon sagt) Informationen zu der AVI-Datei zurück liefert. Unter anderem den Parameter dwLength.

-
C++ hat die Funktion überhaupt nicht :p
-
Danke erstmal, aber dwLength liefert leider nicht die Spieldauer zurück, sondern einen anderen Wert.
Bei kürzeren Filmen ist er kleiner und bei langen Filmen größer....Z.B.: Bei einem 4:15 Minuten-Film ist der Wert dwLength=7656
Und 1:20:01 Stunden -> dwLength=120029
0:29 Minuten -> dwLength=730Sieht mir eher wie die Frameanzahl aus, denn dwLength/Dauer ist ~25.
Also entweder ist heute Vollmond oder ich bin irgendwie anders heute schwer von Begriff.
Kann mich jemand mal anstubsen?
-
Du hast natürlich völlig Recht. Das hatte ich wohl falsch in Erinnerung.
Sorry dafür. 
dwLength * dwScale / dwRate müsste dann allerdings die Laufzeit in Sekunden sein. Aber damit bist du ja fast genauso Nass wie mit deiner ersten Idee.

-
Macht ja nix. Ich denke ich werde es dann per dwLength * dwScale / dwRate ausrechnen.
Ich könnte es allerdings auch in den tmediaplayer (Borland) einladen und dann gibts da sicherlich die Länge, nur wollte ich mir das sparen. Nunja, mal sehen was zügiger läuft...(Jetzt sind meine Selbstzweifel weitgehend verschwunden.
)Gruß
R