Seite 6 von 8 ErsteErste ... 45678 LetzteLetzte
Ergebnis 51 bis 60 von 75

Thema: Matroska parsen

  1. #51
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Hi,

    ich habe da noch eine Frage zu einem FLAG Bit für den SimpleBlock.

    Wenn das Bit 8 (verwerfbar-Bit) auf 1 steht, sollte ich dann diesen Zeitstempel ignorieren, weil die Splitter dieses Bild wirklich nicht benutzten? Oder ist das so eine Sache mit: "kann, aber muss nicht"?

  2. #52
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.320

    Standard AW: Matroska parsen

    Die Bilder werden benutzt. Das sind nur von anderen Bildern nicht referenzierte Bilder. Die könnte ein Player theoretisch auslassen, wenn er z.B. nur im Schnellvorlauf durchs Video möchte. Beim "normalen" Abspielen werden die aber ganz normal dekodiert und angezeigt. Davon abgesehen ist das Flag eh häufig falsch gesetzt, daher sollte man das einfach ignorieren.
    Geändert von sneaker2 (9. January 2018 um 11:58 Uhr)

  3. #53
    Matroska Dev-Helfer
    Registriert seit
    11. April 2007
    Beiträge
    717

    Standard AW: Matroska parsen

    Hi sneaker

    Danke für die Erklärung. Über einen bug zu diesem FLAG hatte ich schon irgendwo gelesen.
    Ok, dann werde ich die Zeiten für solche Bilder ebenfalls als "normal" behandeln.

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

    Standard AW: Matroska parsen

    Ich habe da doch noch ne Frage.

    In mkvInfo steht bei einem SimpleBlock und Block immer die Anzahl der Bilder. Bei "Video-Blocks" scheint es immer nur ein Bild zu geben (anders als bei Audiospuren wo oft 8 Bilder in einem SimpleBlock sind).

    1. Frage: Gibt es dafür ein Byte/Bit was ich auslesen könnte, oder wie kommt diese Anzahl der Bilder zustande?
    2. Frage: Kann es für Video auch mehrere Bilder geben?

    3. Frage: 2.Frage = ja -> SimpleBlock: die Dauer müsste dann Anzahl_Frames * DefaultDuration sein?
    3.1: und für eine BlockGroup ändert sich dann die BlockDuration?

    Für den SimpleBlock muss/kann/sollte man ja die DefaultDuration nutzen, was mir dann immer exakte Nanosekunden liefert.
    Da in einer BlockGroup die BlockDuration vorhanden ist, könnte man diesen Wert ja eigentlich gleich nutzen. Allerdings ist er nur auf Millisekunden Genauigkeit begrenzt.
    Ich mache es momentan so das auch für eine BlockGroup die DefaultDuration verwendet wird um den "EndzeitStempel" zu ermitteln.

    4.Frage: 2.Frage= nein -> dann sollte es doch keine Probleme geben ?
    4.1: 2.Frage=ja -> müsste/könnte ich dann ebenfalls wie in Frage 3 die Dauer berechnen?

    Danke an Alle. Mein Parser ist so gut wie fertig und ich bekomme nun endlich nach vielen Jahren, einen exakten Nanosekunden Wert für die Video-Spieldauer, welche nach ersten Tests perfekt zu seien scheint.

  5. #55
    Kaiser
    Registriert seit
    6. July 2009
    Beiträge
    1.320

    Standard AW: Matroska parsen

    1. Siehe: https://www.matroska.org/technical/s...lock_structure
    Also schauen, ob Lacing-Flag (Bits 5&6 von Flags) != 00 und falls ja, dann "0x00 Number of frames in the lace-1 (uint8)" auswerten.
    2. Ja, wüßte nicht, warum nicht.
    3. Ja. (falls DefaultDuration gesetzt)
    3.1 Was meinst Du mit "ändern"? Nein. BlockDuration ist die BlockDuration. Die ändert sich nicht und ist IMHO "stärker" als n * DefaultDuration.
    4.1 Ja

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

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    1. Siehe: https://www.matroska.org/technical/s...lock_structure
    Also schauen, ob Lacing-Flag (Bits 5&6 von Flags) != 00 und falls ja, dann "0x00 Number of frames in the lace-1 (uint8)" auswerten.
    In meinen test mkvs war dies FLAG Byte immer 0x00. Von daher kann ich ja dort auch keine Bilder ermitteln... also wenn dort alles 0 ist, dann gibt es nur 1 Bild?

    Zitat Zitat von sneaker2 Beitrag anzeigen
    2. Ja, wüßte nicht, warum nicht.
    3. Ja. (falls DefaultDuration gesetzt)
    Ok.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    3.1 Was meinst Du mit "ändern"? Nein. BlockDuration ist die BlockDuration. Die ändert sich nicht und ist IMHO "stärker" als n * DefaultDuration.
    Mit "ändern" meinte ich das der Wert sich entsprechend erhöht, je nachdem wieviele Bilder vorhanden sind.
    Also 1 Bild = BlockDuration 40ms, dann würde aus 4 Bilder 160 ms werden. Oder bezieht sich die BlockDuration nur auf ein einzelnes Bild?
    Geändert von hubblec4 (10. January 2018 um 14:36 Uhr)

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

    Standard AW: Matroska parsen

    Die BlockDuration bezieht sich auf den ganzen Block, zu dem sie gehört.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    In meinen test mkvs war dies FLAG Byte immer 0x00. Von daher kann ich ja dort auch keine Bilder ermitteln... also wenn dort alles 0 ist, dann gibt es nur 1 Bild?
    Ja.

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

    Standard AW: Matroska parsen

    Hi sneaker2

    Mir ist da noch etwas aufgefallen. Ich habe bei MPEG2 im mkv bei Video Interlaced Flag eine 1. Die DefaultDuration wird in mkvInfo so angegeben
    50 Bilder je Sekunde im Falle eines Videos
    Dauer: 20ms

    Das Video ist von DVD (DS9) und hat 25 FPS.

    Bei jeder BlockDuration ist 40ms angegeben.

    Die 25FPS werden aber nirgends im mkv hinterlegt. Wie muss ich das mit dem Interlaced handhaben?
    Kann ich immer davon ausgehen das ich die DefaultDuration verdoppeln muss?
    Geändert von hubblec4 (14. January 2018 um 00:09 Uhr)

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

    Standard AW: Matroska parsen

    BlockDuration geht vor. Wenn die immer da ist, wird DefaultDuration ignoriert.

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

    Standard AW: Matroska parsen

    Ok, gut zu wissen, dennoch möchte/muss ich den Wert von der DefaultDuration verwenden, welcher aber nicht wirklich stimmt.

    Denn bei 25 FPS ist ein Frame nun mal 40ms lang zu sehen. Wieso schreibt da MTX 20ms (mit dem Hinweis: 50 FPS)?

Seite 6 von 8 ErsteErste ... 45678 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
  •