DTS (decoding timestamp), CTS (composition timestamp) -> mkv timecodes?

  • Würde gerne die timecodes eines mp4 files in mkv timcode v2 infos umwandeln ohne "MP4Box --nhml trackid mp4File" aufrufen zu müssen, da dieses immer den Videostream direkt mit extrahiert, was bei großen Dateien wirklich nervt.
    Wenn ich "Mp4Box -dts -std mp4File" aufrufe bekomme ich pro Frame die DTS (decoding timestamp) und die CTS (composition timestamp).
    Meine Frage ist nun ob ich aus den DTS&CTS Werten irgendwie die timecodes errechnen kann.

    Cu Selur

  • Soweit ich mich erinnere, müssten die DTS ein Vielfaches von einem Hochfrequenz-Zeitgeber sein. Zumindest war das für MPEG2 so dokumentiert.

    ISO/IEC 13818-1: 0.8.2 Synchronization

    Zitat

    Time stamps are generally in units of 90kHz, but the System Clock Reference (SCR), the Program Clock Reference (PCR) and the optional Elementary Stream Clock Reference (ESCR) have extensions with a resolution of 27MHz.

    Eine MPEG4-Spezifikation habe ich im Moment leider nicht vorrätig...

  • mit

    Code
    Mp4Box -nhml 2 "Pfad zum .mp4 File"

    wird ein nhml file für den Track 2 erzeugt. (doof nur, dass dabei immer auch der Track mit extrahiert wird und die Dateien immer direkt neben dem Input file erstellt werden)
    im nhml file steht dann auch noch eine timeScale drinnen,....


    welche man aber auch mit einem

    Code
    MP4Box -info "Pfad zum .mp4 File"

    erhält:

    Cu Selur

  • Eigentlich interessant sind ja im MPEG2 eher die "Presentation Time Stamps", die speichern, zu welcher Zeit ein Frame angezeigt werden soll - nicht, bis zu welcher Zeit es decodiert sein muss. Die (oder analoges) werden wohl von MP4Box nicht angezeigt, oder?

    P.S.: Ich finde im Zusammenhang dazu auch die Bezeichnung "RTP timestamp". Die Abkürzung RTP taucht auch bei Hint-Tracks auf. "MP4Box -drtp" erzeugt aber für die Beispieldatei nur eine XML-Datei ohne interessanten Inhalt. Vielleicht muss erst mal ein Hint-Track mit drin sein, damit das was bringt. Das ist aber auch doof - da wird die komplette Datei umgearbeitet. Und die erzeugte XML-Datei ist 1/4 so groß wie die Datei.

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    3 Mal editiert, zuletzt von LigH (27. Februar 2011 um 13:53)

  • Nicht das ich wüsste, vermute das man die pts (presentation time stamps) aber irgendwie berechnen kann aus den anderen Werten,...

    falls jemand mitlesen sollte dem total unklar ist wovon wir reden:
    - PTS (presentation time stamp): Zeitpunkt zu dem das zugehörige Paket dem Benutzer präsentiert werden soll
    - CTS (composition time stamp): Zeitpunkt zu dem das zugehörige Paket aus dem Stream genommen wird (unterscheidet sich von DTS vermutlich nur bei B-Frames, wenn coding != display order ist)
    - DTS (decoding time stamp): Zeitpunkt zu dem das zugehörige Paket dem Decoder übergeben werden muss


    bei http://gpac.wp.institut-telecom.fr/mp4box/media-import/nhnt-format/ steht:

    Zitat

    * compositionTimeStamp : indicates the composition (presentation) time stamp of this access unit.
    * decodingTimeStamp : indicates the decoding time stamp of this access unit.

    Note : Samples must be described in decoding order in the nhnt file when using sample fragmentation. Otherwise, sample may be described out of order.

  • PTS berechnen - wie soll das gehen? Die sind doch unabhängig von anderen Werten. Beispielsweise müssen bei B-Frames doch die zukünftigen P-Frames schon vorher decodiert worden sein. In dem Fall sind DTS und PTS nicht beide stetig, je nach Reihenfolge der Frames (Decodierreihenfolge oder Anzeigereihenfolge).

  • stimmt auch,... wobei die mp4box Angaben und die timecodes sich eigentlich beide auf der Dekodierreihenfolge nach geordnete Frames beziehen werden,..

    hab mal angehängt:
    1. timecodev2 file das man erhält, wenn man die mp4 Datei mkvmerge füttert und anschließend mit mkvextract den timecode extrahiert
    2. das nhml file, das man mit MP4Box extrahieren kann
    3. die cts&dts timestamps die MP4Box ausgibt bei einem -dts Aufruf,..

    Cu Selur

Jetzt mitmachen!

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