Wo steckt denn im VOB/mpeg2 streamheader der Eintrag bezgl. Streamdauer?

  • Ja: TMediaPlayer.Length und TMediaPlayer.TrackLength geben Abspieldauern an. Aber bei deren Ermittlung verlässt er sich auf die Angeben von Windows. Ich schätze, dabei wird die MCI-Bibliothek verwendet, also eine alte kompatible Technik. Ob TMediaPlayer in der Lage ist, VOB oder gar M2V abzuspielen, bezweifle ich, kann's aber mal versuchen zu testen...

  • Zitat von LigH

    Ja: TMediaPlayer.Length und TMediaPlayer.TrackLength geben Abspieldauern an. ...


    Da meine Firma immernoch keinen neuen Einsatz hat, konnte ich es testen.

    TMediaPlayer.Length gibt die Anzahl der Frames als Integer zurück. Habe es in mein Programm eingebaut und mit einem MPEG-2 Video und mehreren DivX-AVIs getestet.

    VOB ist mir persönlich im Moment nicht wichtig. Ich möchte nur die von TMPG unterstützten Formate auslesen.

    Gruß Frank

  • Es kommt allerdings darauf an, in welcher Einheit du die Antwort gern hättest:

    Zitat

    Die Angabe von Length erfolgt im aktuellen Zeitformat, das in der Eigenschaft TimeFormat festgelegt ist.

    Code
    type TMPTimeFormats = (tfMilliseconds, tfHMS, tfMSF, tfFrames, tfSMPTE24, tfSMPTE25, tfSMPTE30, tfSMPTE30Drop, tfBytes, tfSamples, tfTMSF);
  • Zitat von LigH

    Es kommt allerdings darauf an, in welcher Einheit du die Antwort gern hättest: ...


    Dann war es wohl Zufall, dass tfFrames eingestellt war. Habe einen entsprechenden Befehl eingefügt.

    VirtualDub-Frameserverdateien können damit nicht geöffnet werden. Heißt also, dass ich die Sache mit der readavs.dll oder mit der vfw.pas hinbekommen muss. Ein Beispiel für die vfw.pas habe ich auch gefunden.

    Gruß Frank

  • Ja für Delphi 5, 6 und 7 gibt es da einiges. Hatte nicht weiter geguckt, weil ich nur Delphi 3 Professional aus dem Buch Delphi for Kids installiert hatte. Vorgestern habe ich noch Delphi 7 Personal Edition aus der c't installiert. 399 € für das Delphi 8 Update habe ich allerdings nicht.

    Bei Borland gab es die JEDI, glaube ich, auch.

    Bei MPEGWALK gab es unter Delphi 3 Prof eine Fehlermeldung, dass der Befehl L:=$FFFFFF irgendeine untere Grenze unterschreite. Mit Delphi 7 PE geht es. Weil es aber eine Weile dauert, bis ich da was sinnvolle herausbekomme, wollte ich den TMP probieren.

    Für AVI habe ich jetzt vfw.pas, avifile32.pas, avireading.pas. Und bei Delphi Praxis hat jemand ein Programm geschrieben, womit Informationen aus einigen Formaten herausgelesen werden können. Das will er überarbeiten und veröffentlichen.


    Nachtrag:

    Das DSPack http://www.progdigy.com/dspack/ habe ich oben schon mal gelinkt. Damit sollen sich ab Delphi 5 auch DVD-Player programmieren lassen.

    Nochmal Nachtrag:

    Eine DVD-Player-Demo soll auch in dem DSPack sein.

    Gruß Frank

  • Der TMediaPlayer hat den Nachteil, dass das LW+Pfad+Dateiname nur eine bestimmte Länge haben dürfen. Ich hatte was von 96 und 97 Zeichen gelesen. Bei mir sind es unter Win98SE 78. Sind es mehr, gibt es eine Fehlermeldung von mmsystem, wenn das TForm noch nicht erstellt wurde. Ist das TForm erstellt, gibt eine Meldung über eine Schutzverletzung.

    Gruß Frank

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!