Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 75

Thema: Matroska parsen

  1. #41
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.329

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Bleibt jetzt nur noch zu klären ob "DefaultDuration" und/oder "Blockduration" immer irgendiwe vorhanden sind, denn es sind beides keine "zwingenden" Elemente.
    Nein, sind nicht immer vorhanden.
    Hab noch einen alten Post von Mosu gefunden, bei dem er mit dem MediaInfo-Entwickler über das Problem spricht. Ist in manchen Fällen wie vermutet nicht definiert.
    https://forum.doom9.org/showthread.p...14#post1604014

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Ich kann mir vorstellen das für Video und Audio da werte enthalten sind, aber für die Subs wird das nicht wirklich gebraucht, daher nicht "zwingend".
    Bei Subs kommt es auf das Format an. ASS und SRT ohne Blockduration gibt es nicht. Bei PGS/SUP werden die i.d.R. nicht genutzt, wegen dieses komischen Formats (leere "Zeile" beendet quasi vorherige "Zeile"). Bei IDX/SUB weiß ich es nicht aus dem Kopf.

  2. #42
    Grünschnabel
    Registriert seit
    1. January 2018
    Beiträge
    4

    Standard AW: Matroska parsen

    1. IDX/SUB haben (üblicherweise) eine wohldefinierte Länge.
    2. Bzgl. der Länge von Blöcken solltest du dir einmal die Erklärung bzgl. Blockduration ansehen. Im Wesentlichen besagt sie, dass die Dauer eines Blocks gegeben ist durch
    a) den durch BlockDuration (des Blocks) signalisierten Wert.
    b) den durch DefaultDuration signalisierten Wert (sofern vorhanden), falls nicht schon durch a) ein Wert gegeben ist.
    c) die Differenz der Zeitstempel des nächsten (Simple)Blocks in Anzeigereihenfolge und des Zeitstempels des fraglichen (Simple)Blocks (dessen Dauer man herausfinden will), falls der zu untersuchende Block nicht der letzte Block in Anzeigereihenfolge ist und falls nicht schon durch a) oder b) ein Wert gegeben ist.
    Für einen SimpleBlock kommt nur b) und c) in Frage; für den letzten Block (an dem du interessiert bist) nur a) und b).
    3. Es gibt grundsätzlich zwei Möglichkeiten, in einer Matroska-Datei zu spulen: Alle Level 1-Elemente (also die, die auf derselben Ebene wie Cluster sind) haben eine EBML ID mit einer Länge von vier Bytes; man kann die Datei danach absuchen (natürlich muss man Vorkehrungen für falsche Treffer treffen). Oder man benutzt die Cues (den Index). Sofern vorhanden kannst du hier die Position des letzten Schlüsselbildes herausfinden und dann von dort aus den Rest der Datei parsen. Die Cues selbst werden üblicherweise in einem Suchkopf ganz am Anfang referenziert.

  3. #43
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    721

    Standard AW: Matroska parsen

    @sneaker2
    Habe mir mal ein Stück durchgelesen. Ist dennoch etwas verwirrend für mich, aber anscheinend auch nicht so schwer.

    Also Block-Duration, wenn nicht vorhanden, dann DefaultDuration nutzen (dazu beachten ob Laced Frames vorhanden).
    Wenn keines der beiden da ist, dann die "nächste" Cluster Startzeit mit der aktuellen verrechnen.
    Problem hier, was ist bei dem letzten Cluster, der hat keinen nächsten.

    Die Untertitel schaue ich mir dann noch mal etwas genauer an. BD-Sups habe ich genug und auch DVD-idx/sub.
    Geändert von hubblec4 (1. January 2018 um 20:08 Uhr)

  4. #44
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    721

    Standard AW: Matroska parsen

    Danke mkver für die Erklärung.

    Du hast auch gleich die Lösung für den letzten Block geliefert.

    Was das parsen ansich angeht, so habe ich sicher keinen hoch-perfekten Parser, aber er tut bei "korrekten" mkvs auch korrekte Arbeit.
    Ich sehe das bei mkvmerge fast immer Such-Indexe und oft Cue-Index geschrieben werden, aber machen das immer alle anderen mkv-writer Apps auch so?

  5. #45
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.329

    Standard AW: Matroska parsen

    x264cli macht das leider nicht.

  6. #46
    Grünschnabel
    Registriert seit
    1. January 2018
    Beiträge
    4

    Standard AW: Matroska parsen

    Ja, das ist so ziemlich Standard. Die einzige mir bekannte Ausnahme (wenn man davon absieht, dass z.B. mkvmerge bei entsprechenden Kommandozeilenparametern ebenfalls Dateien ohne Cues erstellen kann) ist das in viele Versionen von x264 eingebaute Matroska Ausgabemodul (das auf Haalis Muxer basiert); aber diese Dateien werden üblicherweise noch einmal remultiplext (mit Tonspuren etc. versehen).
    Beachte übrigens, dass eine GOP über mehrere Cluster verteilt sein kann; d.h. wenn du die Cues analysierst und dann zu dem Cluster mit dem letzten Schlüsselbild der Datei springst, musst du noch nicht den letzten Cluster der Datei haben.

  7. #47
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    721

    Standard AW: Matroska parsen

    Genau, der letzte Cluster muss(hat oft) nicht die Infos die ich brauche, da es erstmal nur um das Video geht.
    Ich müsste sicher immer nur im "hinteren" Bereich des mkvs suchen. Also vll die letzten 10% Cluster genauer untersuchen. Vorher reicht es wohl aus zu wissen das ein neuer Cluster einen höheren Zeitstempel hat.

    Genial wäre natürlich man hätte in Matroska ein Element: Anzahl Cluster und dann eine Tabelle mit Startbytes.
    Ich hatte gesehen das es in Clustern ein Element PrevSize gibt, was einem helfen könnte, leichter rückwärst zu parsen. Aber es ist nicht mandatory und daher nicht zuverlässig.

    Mal sehen wie fix mein Parser ist, wenn er durch ein 30gb Full-Bluray-mkv die Cluster parst.

  8. #48
    Grünschnabel
    Registriert seit
    1. January 2018
    Beiträge
    4

    Standard AW: Matroska parsen

    Ältere Versionen von mkvmerge haben standardmäßig einen Suchkopf am Ende der Datei geschrieben, in dem jeder Cluster referenziert wurde. (Dieser zweite Suchkopf wurde wiederum vom ersten Suchkopf referenziert.) Aber das ist nicht mehr standardmäßig so, denn die Positionen aller Cluster bringt beim Spulen eigentlich keinen Mehrwert, man muss ja mit dem Dekodieren sowieso beim Schlüsselbild anfangen.
    Du musst nicht 10% oder so parsen; parse die Cues und gehe zum letzten Schlüsselbild. Das reicht.

  9. #49
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    721

    Standard AW: Matroska parsen

    OK, aber die Cues sind eben auch kein zwingendes muss. Von daher nicht so sicher oder?

    Ausserdem muss ich wie von sneaker2 anfangs erwähnt:
    auch die Startzeit des Videos betrachten.
    Es macht schon sinn im ordered chapter die entsprechende Startzeit zu setzen.
    Von daher werde ich sicher auch den ersten oder zweiten Cluster parsen müssen.


    Kann denn ein Schlüsselbild auch ein Audio Block sein? Also das im letzten Cluster mit Schlüsselbild kein Video ist.
    Denn dann muss ich auf jedenfall weiter zurückliegende Cluster untersuchen.

    In den Cues scheint es immer eine Spurnummer für das Video zugeben, sind die Cues ausschliesslich für Video Spuren/Daten?

  10. #50
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.329

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    OK, aber die Cues sind eben auch kein zwingendes muss. Von daher nicht so sicher oder?
    Nicht 100% sicher, aber heute halt sehr üblich.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    In den Cues scheint es immer eine Spurnummer für das Video zugeben, sind die Cues ausschliesslich für Video Spuren/Daten?
    Nein, auch häufig bei Untertiteln.

Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Matroska-Ordered Chapters Version in einfache Matroska ummuxen
    Von Nel-son im Forum Alternative A/V-Container und -Formate
    Antworten: 4
    Letzter Beitrag: 17. June 2012, 01:25
  2. Matroska v2
    Von hippoth im Forum Alternative A/V-Container und -Formate
    Antworten: 23
    Letzter Beitrag: 11. May 2006, 17:59
  3. AVC in Matroska
    Von Mr. Brown im Forum Alternative A/V-Container und -Formate
    Antworten: 5
    Letzter Beitrag: 2. May 2005, 13:54
  4. Matroska vs. OGM
    Von Xerves im Forum Alternative A/V-Container und -Formate
    Antworten: 10
    Letzter Beitrag: 13. February 2005, 17:31
  5. [- FAQ -] Matroska, XCD und MCF
    Von BaronVlad im Forum Alternative A/V-Container und -Formate
    Antworten: 0
    Letzter Beitrag: 26. April 2003, 11:02

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •