Die Time Base ist die Zeiteinheit, in der ein Stream zählt. Statt Zeitstempel in Sekunden zu speichern, zählt eine Mediendatei in Ticks ihrer eigenen Uhr, und die Time Base gibt an, wie lange ein Tick dauert. Sie wird als Bruchteil einer Sekunde geschrieben.
Welche Dateien sie enthalten und woher der Wert kommt
Du findest eine Time Base in den einzelnen Streams innerhalb von Mediendateien - im Bild, im Ton und in Untertiteln in MP4-, MOV-, MKV-, WebM-, AVI- und MPEG-Transport-Streams ebenso wie in eigenständigen Audiodateien. Jeder Stream hat seine eigene Time Base, daher zählen Audio und Video in einer Datei meist in unterschiedlichen Einheiten.
Der Wert wird vom Encoder oder dem Programm gewählt, das die Datei erstellt hat. Einige Containerformate verlangen eine bestimmte Time Base und legen sie fest; wenn das Format die Wahl offen lässt, wählt das schreibende Programm etwas, das zum Inhalt passt, und eine Datei kann einfach den Standardwert dieses Programms übernehmen.
Wie der Wert aussieht
Sie ist immer ein Bruch, und die Zahl darunter ist die Anzahl der Ticks pro Sekunde:
1/1000- eine Millisekunde pro Tick, die übliche Wahl in Matroska- und WebM-Dateien1/90000- seit Langem üblich in MPEG-Transport-Streams1/48000- Audiostreams zählen oft in Samples, daher entspricht die Time Base der Abtastrate1/12800- ein Wert, der häufig in Videostreams in MP4-Dateien zu sehen ist
Um einen Zeitstempel in Sekunden umzuwandeln, multiplizierst du ihn mit dem Bruch. Ein Präsentationszeitstempel von 12800 in einem Stream mit einer Time Base von 1/12800 entspricht genau einer Sekunde; bei einer Time Base von 1/1000 entsprechen 3500 drei-einhalb Sekunden. Deshalb sehen die Rohzeitstempel in einem Bericht wie riesige Zahlen aus - es sind Tick-Zählungen, keine Sekunden. Ältere Apps können zusätzlich zu diesem Feld auch noch eine separate Zeile „Codec Time Base“ ausgeben.
Warum es wichtig ist
Alles in einer Mediendatei passiert auf einer ganzen Anzahl von Ticks, daher legt die Time Base die feinste zeitliche Auflösung fest, die der Stream darstellen kann. Wenn ein Frame oder ein Sample zwischen zwei Ticks liegt, muss sein Zeitstempel gerundet werden, und Rundungsfehler summieren sich.
Das ist ein echtes Problem bei Videobildraten, die keine ganzen Zahlen sind. Bei der Broadcast-Rate von 30000 Frames pro 1001 Sekunden dauert ein Frame etwas mehr als 33 Millisekunden, aber keine glatte Anzahl davon, sodass eine millisekundenbasierte Time Base keinen Frame genau positionieren kann. Eine Time Base mit mehr Ticks pro Sekunde - also einer größeren Zahl im Nenner des Bruchs - kann jeden Frame exakt treffen. Deshalb bevorzugen Encoder Werte wie 1/12800 oder 1/90000 gegenüber reinen Millisekunden.
Die Folgen zeigen sich als Timingfehler und nicht als etwas, das du in einem einzelnen Frame sehen kannst: Ton, der nach und nach aus dem Takt zum Bild gerät, ungleichmäßige Frame-Abstände, ein Schnitt oder ein Sprung in der Wiedergabe, der leicht daneben landet. Wenn du Dateien zusammenfügst, deren Streams in unterschiedlichen Time Bases zählen, müssen alle Zeitstempel neu skaliert werden. Diese Umrechnung ist eine klassische Quelle für Synchronisationsfehler. Das Feld selbst hat keinen Einfluss auf Bild- oder Tonqualität und enthält keine personenbezogenen Daten.