Seite 4 von 8 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 75

Thema: Matroska parsen

  1. #31
    Erklär-Bär Avatar von LigH
    Registriert seit
    19. April 2003
    Ort
    OPAL-Invalidengebiet Altmark
    Alter
    42
    Beiträge
    42.556

    Standard AW: Matroska parsen

    Mosu kennt sich mit Matroska sicherlich noch mit am besten aus... versucht ihn mal hierher einzuladen.

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten




  2. #32
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Ich weis, aber er ist momentan mehr als beschäftigt, und ich hatte ihn wegen dieses Themas schon des öfteren gefragt. Ich würde ihn ungern weiter nerven wollen. :-)

    Die Tipps von Sneaker sind sehr gut und helfen mir weiter in die Matroska Materie einzutauchen.
    Geändert von hubblec4 (13. January 2018 um 19:26 Uhr)

  3. #33
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.320

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Also ja, aber doch irgendwe nein??
    Ah, sorry, war wohl mißverständlich. Wollte sagen: wenn es so wäre, dann müßte man nur im letzten Cluster suchen. Da dem aber nicht so ist: nur im letzten Cluster zu suchen, ist nicht 100% sicher. (Bzw. die Cluster-Timecodes selbst könnten zwar geordnet sein, aber die Block-Timecodes sind ja beliebig versetzbar mit ihrem Offset, d.h. auch in "Bereiche" anderer Cluster hinein oder gar hinaus.)

    Die Frage wäre jetzt, was die beste Strategie ist, den letzten Zeitstempel bzw. den letzten Start-Zeitstempel zu finden. Das weiß ich so nicht. Ich würde vermutlich zum letzten Cluster gehen und dann rückwärts die Cluster durchsuchen und da irgendwo bei 30 Frames oder so einfach aufhören. Das sollte dann für 99,99% aller Dateien in der Praxis reichen. Vielleicht fragst Du für sowas besser im englischen Forum.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    OK, wo es in den Specs steht ist klar, im Track, aber auch dieses Element ist nicht "zwingend", was wenn es fehlt.
    Einen Default wert gibt es nicht.
    Ja, das ist nicht wirklich definiert, glaube ich. Ich würde da vermutlich den Unterschied zwischen letztem und vorletztem Frame nehmen, oder 0.
    Geändert von sneaker2 (31. December 2017 um 01:40 Uhr)

  4. #34
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ah, sorry, war wohl mißverständlich. Wollte sagen: wenn es so wäre, dann müßte man nur im letzten Cluster suchen. Da dem aber nicht so ist: nur im letzten Cluster zu suchen, ist nicht 100% sicher. (Bzw. die Cluster-Timecodes selbst könnten zwar geordnet sein, aber die Block-Timecodes sind ja beliebig versetzbar mit ihrem Offset, d.h. auch in "Bereiche" anderer Cluster hinein oder gar hinaus.)
    Ich habe meine TNG test folgen, dort gibt es am Ende 2 Sekunden stille Audio Daten. Die mpls Spieldauer ist 00:45:10:00.00.
    Aber im mkv wird in der SegmentInfo Duration 00:45:12:00.000 angezeigt.
    Da ich zu fast 100% ordered chapters nutze, ist die Spieldauer des mkv's dann auch nur die 00:45:10:00.00.

    Auf jedenfall gibt es einige Clusters am Ende die sich auf die Spurnummer 2 beziehen, also die Audiospur.


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Die Frage wäre jetzt, was die beste Strategie ist, den letzten Zeitstempel bzw. den letzten Start-Zeitstempel zu finden. Das weiß ich so nicht. Ich würde vermutlich zum letzten Cluster gehen und dann rückwärts die Cluster durchsuchen und da irgendwo bei 30 Frames oder so einfach aufhören. Das sollte dann für 99,99% aller Dateien in der Praxis reichen. Vielleicht fragst Du für sowas besser im englischen Forum.
    Man müsste schon ein paar einträge zurückgehen um ganz sicher zu sein.
    Allerdings weis ich jetzt(noch) nicht gleich wie man in der Matroska struktur rückwärts parst, man kennt ja die vorherige Cluster größe nicht. Manchmal gibt es einen SeekHead mit Seek Einträgen zu den Clustern, aber eben nur manchmal.

    Ich denke das es nicht sehr viel Zeit in Anspruch nimmt, durch die Cluster hindurch zu parsen.
    Als erstes muss man aber schauen welche Spuren vorhanden sind und welchen Index(Spurnummer) diese haben. Kann ja sein einer mag es das Video als letzte Spur zu haben...oder so.

    Dann die Clusters absuchen, schauen ob die Spurnummer enthalten ist. "Blöcke" durchsuchen nach der Starzeit...usw
    Hört sich eigentlich nicht schwer an.

    Ich weis das sich wahrscheinlich im englishen forum mehr Leute melden würden, aber hier ist es für mich einfacher und du scheinst dich ja auch sehr gut auszukennen.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ja, das ist nicht wirklich definiert, glaube ich. Ich würde da vermutlich den Unterschied zwischen letztem und vorletztem Frame nehmen, oder 0.
    Mmh, nicht so sicherere Sachen sind doof :-), da werde ich im Notfall Mosu fragen müssen.

  5. #35
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Zitat Zitat von Endoro Beitrag anzeigen
    Mediainfo oder sonst ein Infoprogramm parst nicht das Video, das würde viel zu lange dauern. Die gucken im Header und das wars.
    Ja da hast du recht. Ich hatte Jerome (von MediaInfo) angeschrieben. Er sagte mir das MEdiaInfo auch nur die SegmentInfo parst und wenn vorhanden: die Statistis Tags ausliest. Mehr nicht, also auch keine exakte angabe der Video-Spieldauer.

  6. #36
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Hi sneaker2

    könntest du mir noch bissl helfen bei der (Simple)Block Struktur?

    Code:
    Block Structure
    
    Size = 1 + (1-8) + 4 + (4 + (4)) octets. So from 6 to 21 octets.
    Wofür stehen diese Zahlen (klar das sind Bytes). Ich vermute mal das was in Klammer steht muss nicht zwingend vorhanden sein, oder?

  7. #37
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.320

    Standard AW: Matroska parsen

    Ich verstehe das nicht. Ich hätte gedacht:
    1 = ElementID ( [A3] )
    (1-8) = Tracknummer
    4 = timecode
    ...

    Aber: Timecode soll ja signed int16 sein und 16 Bit sind in meiner Welt 2 Bytes, nicht 4 Bytes.

    Oder 4 = timecode + Flags, aber das wären auch nur 2 Bytes + 1 Byte...

    Oder doch wieder variable Länge? Ich suche gerade und finde nur widersprüchliche Informationen.
    Geändert von sneaker2 (31. December 2017 um 19:14 Uhr)

  8. #38
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ich hätte gedacht:
    1 = ElementID ( [A3] )
    (1-8) = Tracknummer
    4 = timecode
    ...

    Aber: Timecode soll ja signed int16 sein und 16 Bit sind in meiner Welt 2 Bytes, nicht 4 Bytes.

    Oder 4 = timecode + Flags, aber das wären auch nur 2 Bytes + 1 Byte...

    Oder doch wieder variable Länge? Ich suche gerade und finde nur widersprüchliche Informationen.
    Nummer 1 ist nicht die ElementID! Block Structure ist ein binary in der entsprechnden spezifikation.

    Bei dem Timecode(jetzt nach neuer Matroska Timestamp) habe ich auch etwas rumprobiert

    BlockGruppe Structur aus der test mkv, letzte Blockgruppe an 85221

    Code:
    A0 52 FF A1 52 F3 81 01 90 00 00 00 01 00 02 9F FF FB B8 00 00 01 B5 84
    Block
    Block ElementGröße:
    Spurnummer in EBML form. also Byte auslesen, führende "0"en zählen usw
    Zeitstempel
    1. und 2. Byte Zeit in Milisekunden wären dann 400, so steht es auch in mkvInfo.

    EDIT:
    Diese 2 Byte reichen aus da es nur eine relative angabe ist.
    Wenn man die Cluster Zeit addiert erhält man den Zeitstempel.

    Auf jedenfall eine Sektion die noch dringen Beschreibungsbedarf hat.


    EDIT2:

    Merke aber eben das nach diesem Schema das erste Byte (erste 1) nicht berücksichtigt wird.
    Wenn ich mir aber das für andere Blocks im HexEditor anschaue dann stimmt mein Schema.

    Sehr komisch. Ich habe auch wieder Jerome angeschrieben, er kennt sich mit dem parsen auch gut aus, zumindestens hatte ich den Eindruck in Wien als er MediaConch vorgestellt hatte.
    Geändert von hubblec4 (1. January 2018 um 05:24 Uhr)

  9. #39
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.320

    Standard AW: Matroska parsen

    Wenn, dann so:
    Code:
    A0 52 FF A1 52 F3 81 01 90 00 00 00 01 00 02 9F FF FB B8 00 00 01 B5 84
    Block
    Block ElementGröße:
    Spurnummer in EBML form. also Byte auslesen, führende "0"en zählen usw
    Zeitstempel
    Flags

    Und das stimmt so auch, denke ich. Wie genau dieses "Size = 1 + (1-8) + 4 + (4 + (4)) octets. So from 6 to 21 octets" zustande kommt, weiß ich nicht, aber egal.
    ElementID: 1
    Größe: 1 (min)
    Spurnummer: 1 (min)
    Zeitstempel: 2
    Flags: 1
    (Lacing: min. 0)

    Das wären dann 6. Oder er zählt statt ElementID den eigentlichen Inhalt mit. Denn ein Block ist ja nicht leer sondern enthält die eigentlichen Bild-/Ton-/Untertiteldaten mit min. 1 Byte. Letztendlich ist es egal, es muß so sein.

  10. #40
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Erstmal vielen Dank für deine Hilfe, hat mir wieder sehr weitergeholfen.

    Denke auch das, dass so stimmt wie wir das ermittelt haben. Notfalls muss ich Mosu noch fragen.

    Bleibt jetzt nur noch zu klären ob "DefaultDuration" und/oder "Blockduration" immer irgendiwe vorhanden sind, denn es sind beides keine "zwingenden" Elemente.
    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".

Seite 4 von 8 ErsteErste ... 23456 ... LetzteLetzte

Aktive Benutzer

Aktive Benutzer

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

Ä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
  •