Andare al contenuto principale
SubtitleMatrix

Timecode drop-frame in non-drop

TimecodeTimecode drop-frame
Oppure incollare il testo dei sottotitoli

Opzioni

30 fps non-drop e 29,97 drop-frame scrivono lo stesso orologio in modo diverso, e questo riquadro sceglie in che direzione il file viene letto e in che direzione viene riscritto. Un blocco a un’ora legge 01:00:00,000 con uno e 01:00:03,600 con l’altro: i due distano 3,6 secondi per ora, non un errore di arrotondamento. Il titolo della pagina nomina una direzione, e questo riquadro ne offre solo quella, quindi il file ottenuto è quello di cui la pagina parla. Nulla cambia nel testo: nessun blocco viene ritemporizzato rispetto al video, nessuna frequenza dei fotogrammi viene convertita, e un blocco entro il primo minuto di un’ora torna esattamente com’è entrato, perché lì nessuna etichetta di fotogramma viene saltata.

La frequenza dei fotogrammi in cui sono contati i tempi. Nelle pagine di formato è quella che serve a MicroDVD, perché memorizza i tempi come numeri di fotogramma. Nelle pagine della frequenza dei fotogrammi è la cadenza con cui è stato temporizzato il file — la versione per cui sono stati creati i sottotitoli — e il secondo riquadro della pagina accetta la frequenza del video con cui verranno usati. 23,976, 24, 25, 29,97, 30, 50, 59,94 e 60 sono quelle comuni. Sbagliarla sposta l’intera timeline, e nelle pagine della frequenza dei fotogrammi la sposta di un rapporto anziché di un importo fisso.

Questa pagina rietichetta ogni timecode di un file di sottotitoli da 29,97 fps drop-frame a 30 fps non-drop-frame. Ogni orologio arretra di una quantità fissa che cresce con il programma: nulla nel primo minuto di un’ora, 3,6 secondi dopo un’ora, 36 secondi dopo dieci ore. Le parole, i numeri dei blocchi, l’ordine dei blocchi e gli a capo restano quelli del file e non vengono toccati.

La pagina serve a un file che è stato marcato su un display o un registratore che contava in drop-frame — la cosa abituale sul materiale a 29,97 fps, perché il drop-frame è la convenzione che resta allineata all’orologio da parete — mentre tutto ciò che sta a valle legge gli orologi come non-drop. Letto così, ogni timecode del file è troppo grande di una quantità che continua a crescere: i sottotitoli arrivano presto, e sempre più presto man mano che il programma va avanti. Dopo mezza ora l’errore è di 1,8 secondi e non smette di crescere in nessun punto del file. Per questo la correzione non è una spinta unica: è la stessa rietichettatura applicata a ogni marca temporale, con l’entità della correzione fissata dalla posizione del blocco.

Leggere un orologio come timecode significa agganciarlo al più vicino fotogramma a 30 fps, e in drop-frame due di quei fotogrammi non esistono. La convenzione salta le etichette ;00 e ;01 all’inizio di ogni minuto tranne ogni decimo — conta 00:00:59;28, 00:00:59;29 e poi salta a 00:01:00;02 — quindi un ingresso 00:01:00,000 nomina un istante che quella convenzione non sa scrivere: viene riportato all’ultima etichetta scrivibile, 00:00:59,933, 67 millisecondi prima. È un confine reale dell’aritmetica, non una tolleranza, e la pagina lo dichiara invece di levigarlo: su due ore se ne contano 216. Un blocco che dopo l’aggancio risulta più corto di un fotogramma non è scrivibile, perché i suoi due estremi cadono sullo stesso fotogramma; viene scartato e conteggiato nel rapporto delle perdite invece di essere allungato in silenzio a un fotogramma. Un file senza blocchi simili non segnala nulla. Tutto avviene nella scheda del browser: il file viene letto e riscritto qui e non lascia mai la macchina, e questo conta per lo stesso motivo di ogni altra pagina del sito — il materiale coperto da riservatezza non può essere consegnato a un servizio di conversione, e questa pagina non lo chiede.

Esempi

Un file a cinque minuti dall’inizio

Ingresso

1
00:05:00,000 --> 00:05:02,000
The room is dark.

2
00:10:00,000 --> 00:10:03,000
A cold night.

Uscita

1
00:04:59,667 --> 00:05:01,667
The room is dark.

2
00:09:59,400 --> 00:10:02,400
A cold night.

La correzione non è un unico numero applicato al file: a cinque minuti l’orologio arretra di 333 ms e a dieci minuti di 600 ms, perché il drop-frame ha già buttato dieci etichette al primo blocco e diciotto al secondo. Ogni blocco conserva la sua durata al millisecondo, dato che entrambi i suoi estremi si spostano della stessa quantità: è una rietichettatura, non uno spostamento.

La stessa correzione a un’ora

Ingresso

1
01:00:03,600 --> 01:00:06,600
An hour into the programme.

Uscita

1
01:00:00,000 --> 01:00:03,000
An hour into the programme.

Dopo un’ora, 01:00:03,600 del drop-frame è quello che il non-drop chiama 01:00:00,000: 108 etichette saltate, 3600 ms. È il numero con cui verificare la pagina: la prima riga dell’uscita deve essere esattamente 3600 ms prima della prima riga dell’ingresso, e un file proveniente da un registratore drop-frame deve atterrare sull’ora tonda.

Un blocco dentro il primo minuto

Ingresso

1
00:00:04,000 --> 00:00:06,000
Still early in the file.

2
00:05:00,000 --> 00:05:02,000
This one does move.

Uscita

1
00:00:04,000 --> 00:00:06,000
Still early in the file.

2
00:04:59,667 --> 00:05:01,667
This one does move.

Durante il primo minuto di un’ora non si salta nessuna etichetta, quindi le due convenzioni scrivono quei sessanta secondi allo stesso modo e il primo blocco resta com’è. Il secondo, a cinque minuti, si sposta. Un blocco fermo accanto a uno spostato è l’uscita corretta per questo file e non un’esecuzione bloccata: la correzione è zero in cima all’ora e cresce dal primo confine di minuto in poi.

Domande frequenti

Perché i sottotitoli escono prima invece che dopo?

Perché gli orologi del file erano più grandi degli istanti che nominavano. Il non-drop conta 30 etichette al secondo come se 29,97 fps ne producesse 30, quindi si porta lentamente avanti rispetto al tempo reale; il drop-frame salta due etichette al minuto per restargli dietro. Un orologio letto su un registratore drop-frame e poi interpretato come non-drop punta quindi oltre il punto giusto, e la correzione sottrae quell’eccesso: 333 millisecondi a cinque minuti, 3600 millisecondi a un’ora, 36000 millisecondi a dieci ore. La quantità è zero per ogni orologio dentro il primo minuto di un’ora, quindi la correzione più piccola che la pagina applichi è quella al primo confine di minuto, e nessun orologio viene spinto sotto 00:00:00.

Che cosa succede a un timecode drop-frame che non si può scrivere?

Viene riportato all’ultima etichetta scrivibile. Ogni minuto che salta in drop-frame è privo delle etichette ;00 e ;01, quindi 00:01:00,000 e 00:01:00,010 non sono orologi che quella convenzione sappia mostrare: finiscono su 00:00:59,933, 67 millisecondi prima. È l’unico punto della pagina in cui il risultato non è una rietichettatura esatta, ed è un insieme limitato — due etichette per ogni minuto che salta, 216 valori su due ore — così la pagina lo dichiara qui invece di lasciartelo trovare nel confronto.

Un blocco può sparire dal mio file?

Solo un blocco più corto di un fotogramma, 33,37 millisecondi. Due cose possono spingere un blocco su un unico fotogramma: l’aggancio descritto sopra, per cui un blocco di dieci millisecondi come 00:01:00,000 - 00:01:00,010 vede entrambi gli estremi tirati a 00:00:59,933, e un blocco che era già sotto il fotogramma quando è arrivato. Un blocco che inizia e finisce nello stesso istante non si può scrivere, quindi viene scartato e il suo conteggio compare nel rapporto delle perdite sopra l’area di lavoro. Un file che non ne contiene non segnala nulla, che è il caso normale.

Oltre ai valori dell’orologio cambia altro nel file?

No. I numeri dei blocchi, il loro ordine, il testo di ogni riga, gli a capo forzati dentro un blocco e il numero totale di blocchi sono quelli del file e restano come erano. La pagina riscrive gli stessi due numeri per blocco, rietichettati. Non registra da nessuna parte che gli orologi ora sono non-drop, perché nessuno dei formati letti qui — SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON, CSV — ha un campo che possa contenerlo, e nemmeno il file che hai trascinato lo diceva.

Che frequenza dei fotogrammi devo mettere nella casella?

Qualsiasi frequenza abbia davvero il girato; non influisce su questa conversione. Il 30 e il 29,97 nel nome della pagina sono le convenzioni di conteggio scritte nella stringa del timecode, non la frequenza dei fotogrammi del video, quindi nulla qui viene riscalato dal numero che inserisci. La casella è obbligatoria solo perché MicroDVD memorizza i tempi come numeri di fotogramma invece che come orologi, e leggere un file MicroDVD è impossibile senza conoscerne la frequenza.

Se lancio la pagina opposta su questo risultato, riottengo il file originale?

Sì, byte per byte, purché nessun timecode sia caduto nella classe che il drop-frame non sa scrivere. Le due pagine sono la stessa aritmetica letta in direzioni opposte: questa sottrae una quantità crescente, l’altra la riaggiunge, e le quantità sono fissate dalla posizione di ogni blocco e non da uno scostamento fisso. L’eccezione è il caso di aggancio — un 00:01:00,000 uscito come 00:00:59,933 torna come 00:00:59,933 — ed è l’unica classe di marca temporale per cui la coppia non è un andata e ritorno.

Strumenti correlati