C++: Auflösung und Frame eines Avisynthskripts auslesen,..

  • Da ich mich nebenbei mal wieder etwas in C++ einarbeiten will habe ich ein kleines Projekt mit C++&QT gestartet in dem ich mir eine kleine Encoding GUI zusammenstricke.

    Um bestimmte Einschränkungen von Profilen zu beachten würde ich gerne aus einem Avisynthskript Auflösung&Framerate auslesen, hab aber noch keine Ahnung wie?

    Kennt jemand eine möglichst schlanke Möglichkeit?

    Cu Selur

  • Am besten sollte es über VfW gehen. Die interessanten Funktion ist AviFileInfo

    http://msdn2.microsoft.com/en-us/library/ms706309.aspx
    http://msdn2.microsoft.com/en-us/library/ms706413.aspx

    Damit kann man im Zweifel nicht nur avs einlesen sondern alle avis, für deren Inhalt ein VfW Codec zur Verfügung steht. Andere avi Parser funktionieren unter Umständen nicht, weil sich Avisynth in VfW einhängt iirc.

    Man kann auch über avisynth gehen, das macht z.B. avs2yuv (http://www.akuvian.org/src/avisynth/avs2yuv/), das scheinen nur einige hundert Zeilen Code zu sein.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Nachdem ich den AVS2YUV Code angeguckt habe, hab ich jetzt folgendes 'verbrochen':


    liefert grundlegende Infos über den Inhalt des .avs Skripts mit dem an es füttert :)

    Cu Selur

  • Aktuell sieht der Code wie folgt aus:


    Soweit so gut, leider klappt das mit der FieldOrder-Erkennung nicht bzw. nur wenn ich im AvisynthSkript explizit AssumeTFF() oder AssumeBFF() angegeben habe. :(
    (hatte zum Testen je ein .d2v File mit TFF oder BFF order per MPEG2Source geladen und eigentlich gedacht Assume.. wäre nicht nötig)
    -> hat einer eine Idee wie man die FieldOrder-Erkennung besser machen kann?

    Cu Selur

  • Soweit so gut, leider klappt das mit der FieldOrder-Erkennung nicht bzw. nur wenn ich im AvisynthSkript explizit AssumeTFF() oder AssumeBFF() angegeben habe. :(
    (hatte zum Testen je ein .d2v File mit TFF oder BFF order per MPEG2Source geladen und eigentlich gedacht Assume.. wäre nicht nötig)
    -> hat einer eine Idee wie man die FieldOrder-Erkennung besser machen kann?


    Du könntest Dir D2VParse (mit Delphi-Source) von Ammon82/Avalon ansehen.

    Zitat

    * D2VParse parses a d2v-file and show you the results
    * VOB-files, Streamtype, MPEGType, iDCT, YUVRGB Scale
    * Luminance Filter, Clipping, Aspect Ratio, Resolution
    * Field Operation, FPS, Location, Field Order (TFF,BFF,PFF)
    * TXT Output (*.parsed)

    Oder selbst das TFF Flag aus der Picture Coding Extension lesen.

    Gruß Frank

Jetzt mitmachen!

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