La Time Base è l'unità di tempo con cui un flusso conta. Invece di memorizzare i timestamp in secondi, un file multimediale conta in tick del proprio orologio, e la time base indica quanto dura un singolo tick. È scritta come una frazione di secondo.
Quali file lo contengono e da dove proviene il valore
Troverai una time base sui singoli flussi all'interno dei file multimediali: l'immagine, l'audio e gli eventuali sottotitoli in flussi MP4, MOV, MKV, WebM, AVI e MPEG transport, così come nei file audio standalone. Ogni flusso ha la propria, quindi audio e video nello stesso file in genere contano in unità diverse.
Il valore è scelto dal codificatore o dal programma che ha assemblato il file. Alcuni formati contenitore richiedono una specifica time base e la fissano in modo rigido; dove il formato lascia aperta la scelta, il programma di scrittura seleziona qualcosa di adatto al contenuto e il file può semplicemente riportare il valore predefinito di quel programma.
Come appare il valore
È sempre una frazione, e il numero al denominatore è il numero di tick al secondo:
1/1000- un millisecondo per tick, la scelta abituale nei file Matroska e WebM1/90000- in uso da tempo nei flussi MPEG transport1/48000- i flussi audio spesso contano in campioni, quindi la time base corrisponde alla frequenza di campionamento1/12800- un valore comunemente usato per i flussi video nei file MP4
Per convertire un timestamp in secondi, moltiplicalo per la frazione. Un presentation timestamp di 12800 in un flusso con time base 1/12800 corrisponde esattamente a un secondo; con una time base di 1/1000, un timestamp di 3500 corrisponde a tre secondi e mezzo. Per questo i timestamp grezzi in un report sembrano numeri enormi: sono conteggi di tick, non secondi. Le app più vecchie possono anche mostrare una riga separata "Codec Time Base" insieme a questa.
Perché è importante
Tutto in un file multimediale avviene su un numero intero di tick, quindi la time base definisce la massima precisione temporale che il flusso può esprimere. Se un frame o un campione cade tra due tick, il suo timestamp deve essere arrotondato e gli errori di arrotondamento si accumulano.
Questo è un problema reale con frequenze dei fotogrammi video che non sono numeri interi. Alla frequenza di trasmissione di 30000 fotogrammi ogni 1001 secondi, un frame dura poco più di 33 millisecondi ma non un numero intero di millisecondi, quindi una time base in millisecondi non può posizionare esattamente alcun frame. Una time base con più tick al secondo, cioè con un numero più grande al denominatore della frazione, può collocare con precisione ogni confine tra frame; per questo i codificatori preferiscono valori come 1/12800 o 1/90000 rispetto ai millisecondi esatti.
Le conseguenze si manifestano come errori di sincronizzazione piuttosto che come qualcosa di visibile in un singolo frame: audio che si sposta gradualmente fuori sincrono rispetto all'immagine, spaziatura irregolare dei frame, un taglio o un seek che si ferma leggermente fuori posto. Unire file i cui flussi contano con time base diverse significa che tutti i timestamp devono essere riscalati, e questa conversione è una classica fonte di errori di sincronizzazione. Il campo di per sé non influisce sulla qualità di immagine o audio e non contiene informazioni personali.