Dizionario

Che cos'è la durata?

La durata è il tempo totale di riproduzione di un file audio o video. Ecco come i file memorizzano questo valore e perché 2 programmi possono mostrare numeri diversi.

duration

La durata è l'intervallo di tempo in cui qualcosa dura. In un file multimediale, la durata indica il tempo di esecuzione totale. La durata di un video indica per quanto tempo il video viene riprodotto dall'inizio alla fine, e la durata dell'audio significa lo stesso per una canzone o una registrazione.

Di solito vedi questo valore nel player multimediale come tempo totale. Nei metadati, la stessa informazione appare in un campo chiamato Duration.

Quali file lo contengono

La durata riguarda i file che si riproducono nel tempo, quindi i file audio e video. Le foto statiche e i documenti di testo di norma non hanno un campo durata.

Le immagini animate sono un caso speciale. Un file GIF memorizza un ritardo per ogni fotogramma e non un tempo totale. ExifTool riporta comunque una Duration per un passaggio dell'animazione.

Da dove proviene il valore

Alcuni formati memorizzano direttamente la lunghezza. Altri formati memorizzano valori che il software usa per calcolare la lunghezza.

  • MP4 e MOV: l'header del filmato memorizza una scala temporale e una durata. La scala temporale è il numero di unità di tempo per secondo, e la durata conta quelle unità.
  • MKV e WebM: le informazioni del segmento possono contenere un elemento Duration opzionale, conteggiato in tick. Per impostazione predefinita, un tick corrisponde a un millisecondo.
  • MP3: il tag ID3 può contenere un frame TLEN con la lunghezza in millisecondi. ExifTool calcola la lunghezza da altri valori, come la dimensione del file e il bit rate.
  • FLAC: il file memorizza il numero totale di campioni e la frequenza di campionamento. Il software calcola la lunghezza da questi 2 valori, e un totale di 0 significa che il numero è sconosciuto.
  • WAV: ExifTool calcola la lunghezza dai byte medi per secondo e dalla dimensione del file.

Come appaiono i valori

La stessa lunghezza può apparire in forme diverse, a seconda del programma che legge il file:

  • 00:05:15: ore, minuti e secondi. Questo file dura 5 minuti e 15 secondi.
  • 15.23 s: secondi, con l'unità mostrata.
  • 200.541000: un numero senza unità. Il programma ffprobe del progetto FFmpeg stampa la durata in questo modo, con 6 cifre dopo la virgola. Il numero significa 200,541 secondi, circa 3 minuti e 21 secondi.
  • N/A: nel suo formato di output predefinito, ffprobe stampa questo quando la durata manca. Nei formati di output JSON e XML, invece, la durata viene omessa.

Un numero senza unità non è sempre in secondi. Il frame TLEN conta i millisecondi, e il valore duration_ts in ffprobe conta unità della time base dello stream. Controlla da quale campo proviene il numero.

Perché i programmi possono mostrare durate diverse

Programmi diversi possono mostrare durate diverse per lo stesso file, e nessuno dei due deve per forza essere sbagliato. Ecco 4 motivi:

  • Arrotondamento: un player che mostra solo secondi interi arrotonda 200.541 per eccesso o per difetto.
  • Tracce separate: l'immagine e l'audio hanno tracce separate, e ogni traccia ha la propria durata. In un file MOV, la durata del filmato corrisponde alla traccia più lunga.
  • Tempi di inizio: ogni stream può avere il proprio tempo di inizio. FFmpeg può misurare dal primo inizio all'ultima fine, quindi un avvio tardivo può rendere la durata totale più lunga.
  • Stime: un file può avere un bit rate ma non una durata. FFmpeg quindi stima la durata dal bit rate e dalla dimensione del file, e avverte che il risultato può essere impreciso.

Perché è importante

La durata ti permette di controllare un file senza riprodurlo. Se ti aspetti una clip di 5 minuti e 15 secondi e vedi 15.23 s, il file potrebbe non essere quello che ti aspetti.

La durata è anche collegata ad altri valori. FFmpeg può calcolare il bit rate complessivo dalla dimensione del file e dalla durata.