Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 75

Thema: Matroska parsen

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

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Naja, da müßte man zuerst mal eine Definition dessen haben, was genau "die Spieldauer" eigentlich sein soll.
    Als Spieldauer meine ich die Dauer welche das Video im Player abgespielt/angezeigt wird.

    Im Anhang ist mal eine Beispiel mkv Datei.
    Mkvmerge Identify und auch MediaInfo zeigen eine Spieldauer von 576ms. MediaInfo zeigt aber bei der Videospur 560ms, aber für die Audios 576ms, daher meine Vermutung das in der SegmentInfo eben der größte Wert steht.

    Da ich gerade dabei bin im cE den Matroska Menü-Editor neu zumachen, muss ich nun eine bessere Lösung finden als die "Info-Spieldauer", da diese einfach NIE korrekt ist.

    In einem meiner Test wird ganz deutlich das diese Spieldauer-Angabe falsch/ungenau ist.
    Ich habe dazu ein Film mit MTX in Teile geschnitten, diese dann mittels Matroska Hard-Linking verbunden. Spieldauer 2min58sek = Korrekt
    Wenn ich das ganze mittels Medium-Linking mache(Spieldauer der Datei wird dazu benutzt) erhalte ich eine Spieldauer von 3min07sek

    Im Player bleibt das Bild jedesmal für 1 bis 2 Sekunden hängen, bis ein neuer Schnitt-Teil erreicht ist.


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Mit "fps" ist schlecht, denn Matroska ist bekanntlich variabel.
    Ok, verstehe. Es gibt also kein Element wo man diesen Wert diekt auslesen kann.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Anfang des ersten Blocks bis letzter Block (+Default Duration o.ä.) hört sich vernünftig an
    Erster bis letzter Block?? Verstehe das nicht genau wie du es meinst.


    Zitat Zitat von sneaker2 Beitrag anzeigen
    , aber dann ist die Frage, welche Tracks man sich anschauen möchte, denn das ist ja für jeden anders.
    Ich denke der Video Track ist der entscheidente.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Mkvmerge taggt da auch jeden Track einzeln mit dieser Info. Also statt "Definition" vielleicht noch eher die Frage nach dem Zweck... Ich wüßte nicht, warum da MediaInfo oder irgendein Player das Maß der Dinge sein sollten.
    Die Statistic Tags sind nicht immer vorhanden, also kein zuverlässiges Mittel, außerdem ist da auch keine gute Info für mich enthalten.
    Angehängte Dateien Angehängte Dateien
    Geändert von hubblec4 (30. December 2017 um 01:47 Uhr)

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

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Als Spieldauer meine ich die Dauer welche das Video im Player abgespielt/angezeigt wird.
    Wofür ist das relevant?

    Die Videospur in der Datei ist laut Container 480ms lang. Erster Frame startet bei 0s, letzter Frame startet bei 440ms (für Dauer von 40ms). Aber wie hilft Dir das weiter? (Abgesehen davon, daß ich nicht weiß, ob der MPEG2-Bitstream in der Form brauchbar ist. Würde zum Testen lieber etwas sauberes codieren, am besten ohne B-Frames...)
    Ich kenne Deinen Player nicht und halte es für gefährlich, sich an einem bestimmten zu orientieren. Was willst Du machen, wenn eine Videospur nicht bei 0s startet?

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Wenn ich das ganze mittels Medium-Linking mache(Spieldauer der Datei wird dazu benutzt) erhalte ich eine Spieldauer von 3min07sek
    Was heißt "Spieldauer der Datei wird dazu benutzt"?

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

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Wofür ist das relevant?...
    ...Was heißt "Spieldauer der Datei wird dazu benutzt"?
    Für das Matroska Medium-Linking. Dort wird einfach ein ordered Chapter verwendet mit Startzeit 0 und Endzeit="Spieldauer" und der entsprechenden SegmentUID zur Datei.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Die Videospur in der Datei ist laut Container 480ms lang. Erster Frame startet bei 0s, letzter Frame startet bei 440ms (für Dauer von 40ms).
    Interessant: hast du all diese infos NUR durch parsen der mkv Datei erhalten oder was für Tools hast du zum analysieren verwendet?


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Aber wie hilft Dir das weiter? (Abgesehen davon, daß ich nicht weiß, ob der MPEG2-Bitstream in der Form brauchbar ist. Würde zum Testen lieber etwas sauberes codieren, am besten ohne B-Frames...)
    Ich kenne Deinen Player nicht und halte es für gefährlich, sich an einem bestimmten zu orientieren. Was willst Du machen, wenn eine Videospur nicht bei 0s startet?
    Wie das Video in der "Haupt-Datei" aufgebaut ist, soll/darf/brauch nicht wichtig sein für das abspielen. Nur die Infos für den Splitter: Anzahl Streams, Codecs usw werden ausgelesen, denn diese Hauptdatei wird NICHT in der neuen Virtuellen Timeline verwendet.

  4. #24
    Daydreamer Avatar von Endoro
    Registriert seit
    11. August 2012
    Ort
    Atlantis & Avalon
    Beiträge
    514

    Standard AW: Matroska parsen

    Mediainfo oder sonst ein Infoprogramm parst nicht das Video, das würde viel zu lange dauern. Die gucken im Header und das wars. FFprobe bzw. MkvInfo können das Video parsen und anhand der Framelänge und -anzahl feststellen, wie lang es tatsächlich ist. Dazu müssen auch B-Frames berücksichtigt werden, weil die ja auch gezeigt werden. Ob die GOP-Länge irgendwo vermerkt ist, kann ich grad nicht prüfen, bezweifele das aber. Die müßte man anhand der enthaltenen B-Frames vermutlich erst mal bestimmen. Für die Berechnung der Videolänge über die Frames ist es egal, ob es bei „0“ oder sonstwo losgeht, da geht es nur um die Tracksychonizität.

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

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Interessant: hast du all diese infos NUR durch parsen der mkv Datei erhalten oder was für Tools hast du zum analysieren verwendet?
    Nur aus mkvinfo ausgelesen.
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	mkvinfo_dauer_-or82.png 
Hits:	10 
Größe:	28,8 KB 
ID:	99427

    Zitat Zitat von Endoro Beitrag anzeigen
    Für die Berechnung der Videolänge über die Frames ist es egal, ob es bei „0“ oder sonstwo losgeht, da geht es nur um die Tracksychonizität.
    Er will ja in eine neue Timeline mappen (quasi von "physisch" zu "virtuell"). Wenn "physisch" bei +500ms losgeht, müßte er das auch in der Chapter-XML berücksichtigen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	mkvinfo_dauer_-or8.png 
Hits:	4 
Größe:	26,7 KB 
ID:	99426  

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

    Standard AW: Matroska parsen

    Ich hatte die Datei auch mit MKVInfo angeschaut, aber nicht gleich durchgesehen.

    Nach ein bissl Specs-Analyse verstehe ich das etwas besser.
    Bin aber auch verwundert das die Blockgruppe nicht nach "Startzeiten" sortiert sind. Dafür steht dann dort immer noch etwas von einem Referenzblock mit einer Zeitangabe, immer zwei Angaben einmal positive Zeit und einmal negativ. Mir noch nicht ganz klar....

    Ich müsste also den Cluster finden, wo in der Blockgruppe ein Block ist, mit dem "höchsten" Zeit wert und dann dessen Blockdauer addieren.

    Was ist mit den Simpleblocks, da steht nicht viel Info drin, diese sind dann auch nicht so wichtig??

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

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Bin aber auch verwundert das die Blockgruppe nicht nach "Startzeiten" sortiert sind.
    Coding Order vs Display Order. Die sind bei Dateien mit B-Frames i.d.R. nicht identisch.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Dafür steht dann dort immer noch etwas von einem Referenzblock mit einer Zeitangabe, immer zwei Angaben einmal positive Zeit und einmal negativ. Mir noch nicht ganz klar....
    Referenzen von P- und B-Frames.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Ich müsste also den Cluster finden, wo in der Blockgruppe ein Block ist, mit dem "höchsten" Zeit wert und dann dessen Blockdauer addieren.
    Ja, so denke ich mir das.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Was ist mit den Simpleblocks, da steht nicht viel Info drin, diese sind dann auch nicht so wichtig??
    Auch Simpleblocks können Videoframes enthalten. Ist nur bei dieser Datei nicht so.
    Wenn keine Blockdauer explizit drinsteht mit DefaultDuration.

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

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Coding Order vs Display Order. Die sind bei Dateien mit B-Frames i.d.R. nicht identisch.
    OK, ich weis da bissl aber sicher noch nicht genug.
    Display Order hat dann geordente Zeitstempel und Coding Order nicht?

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Referenzen von P- und B-Frames.
    Das Element "ReferenceBlock" hat als Werte-Bereich "i" Signed Integer, was Nanosekunden sind. Es steht dort ja auch nur ein Zeitstempel, aber woher weis man dann ob es P oder B frames sind?


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ja, so denke ich mir das.
    Kann ich aber davon ausgehen das die Cluster in Zeitreihenfolge geordnet sind, dann müsste man nur im letzten Cluster suchen.

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Auch Simpleblocks können Videoframes enthalten. Ist nur bei dieser Datei nicht so.
    Wenn keine Blockdauer explizit drinsteht mit DefaultDuration.
    Wo finde ich dann die Dauer für den SimpleBlock. Einen "Start" Zeitstempel sehe ich, und die Anzahl der Bilder.

    Den Wert "DefaultDuration" verstehe ich noch nicht ganz. Wo finde ich diesen Default Wert?

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

    Standard AW: Matroska parsen

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Display Order hat dann geordente Zeitstempel und Coding Order nicht?
    Ja. Coding Order ist halt, wie es gespeichert ist. Und Display Order, wie wir Menschen uns das anschauen. Ist jetzt auch nicht wirklich relevant, außer halt überhaupt zu wissen, daß der letzte Block (von der Reihenfolge, wie er gespeichert ist, nicht unbedingt den letzten Frame (von der Anzeigezeit) enthält.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Das Element "ReferenceBlock" hat als Werte-Bereich "i" Signed Integer, was Nanosekunden sind. Es steht dort ja auch nur ein Zeitstempel, aber woher weis man dann ob es P oder B frames sind?
    Wenn da eine positive Referenz ist, muß es ein B-Frame sein. Ist aber nicht wichtig zu wissen.

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Kann ich aber davon ausgehen das die Cluster in Zeitreihenfolge geordnet sind, dann müsste man nur im letzten Cluster suchen.
    Ja. (Sind sind aber nicht, also egal...)

    Zitat Zitat von hubblec4 Beitrag anzeigen
    Wo finde ich dann die Dauer für den SimpleBlock. Einen "Start" Zeitstempel sehe ich, und die Anzahl der Bilder.

    Den Wert "DefaultDuration" verstehe ich noch nicht ganz. Wo finde ich diesen Default Wert?
    https://www.matroska.org/technical/s...efaultDuration

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

    Standard AW: Matroska parsen

    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ja. Coding Order ist halt, wie es gespeichert ist. Und Display Order, wie wir Menschen uns das anschauen. Ist jetzt auch nicht wirklich relevant, außer halt überhaupt zu wissen, daß der letzte Block (von der Reihenfolge, wie er gespeichert ist, nicht unbedingt den letzten Frame (von der Anzeigezeit) enthält.
    So in etwa hatte ich mir das im Kopf schonmal zusammengereimt. Jetzt weis ich es genau, danke schön.


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Wenn da eine positive Referenz ist, muß es ein B-Frame sein. Ist aber nicht wichtig zu wissen.
    Ja, gut zu wissen. Für die jetzige Aufgabe ist es nicht wichtig, stimmt.


    Zitat Zitat von sneaker2 Beitrag anzeigen
    Ja. (Sind sind aber nicht, also egal...)
    Also ja, aber doch irgendwe nein??


    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.

Seite 3 von 8 ErsteErste 12345 ... 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
  •