Italiano

Video e sottotitoli · Toolkit sottotitoli

Come funziona la risincronizzazione dei sottotitoli: spostando ogni battuta di un offset fisso

· Come funziona

sottotitoli codici temporali elaborazione del browser

Gli intervalli dei segnali dei sottotitoli si spostano prima sulla sequenza temporale del video
Illustrazione vettoriale originale ToolAcre

Quando ogni didascalia è in ritardo o in anticipo dello stesso importo, la soluzione è l'aritmetica del timecode. Questo post spiega come un retime sposta l'inizio e la fine di ogni cue, cosa succede a zero e come misurare l'offset in primo luogo.

Ogni didascalia appare due secondi dopo l'oratore: il sintomo prodotto da uno spostamento costante

Quando ogni didascalia appare circa due secondi dopo la riga parlata corrispondente, non è necessario spostare i blocchi di indicazione individualmente. Un offset costante applica la stessa aritmetica a ciascuna cue. Il fatto che sia costante è la diagnosi: se i sottotitoli iniziano correttamente e si allontanano nell'arco di quaranta minuti, il rescaling o una correzione del frame-rate è un'operazione diversa. Controlla all'inizio, al centro e alla fine prima di toccare l'intero file.

Misurare l'offset: fare una pausa sulla prima riga chiara del dialogo e confrontare l'orologio video con l'ora di inizio della stecca

Fai una pausa su una riga di dialogo chiaro e osserva l'ora del video quando inizia. Confrontalo con l'ora di inizio del primo sottotitolo corrispondente. Se l'audio inizia alle 00:01:10.000 e il sottotitolo inizia alle 00:01:11.850, i segnali sono in ritardo di 1,850 millisecondi, quindi la regolazione è −1,850 ms. Un secondo punto di controllo più avanti nel video verifica se la stessa differenza persiste. L'offset deriva dall'osservazione della registrazione; lo strumento non può dedurlo da parole non correlate.

Aritmetica del timecode: conversione di HH:MM:SS,mmm in millisecondi, aggiunta dell'offset, riconversione

SRT esprime una stecca come HH:MM:SS,mmm; WebVTT normalmente utilizza un punto prima dei millisecondi. Convertire i componenti in millisecondi con (((ore×60+minuti)×60+secondi)×1000)+millis. Aggiungi l'offset scelto una volta, quindi scomponi il risultato in cifre di ore, minuti, secondi e tre millisecondi. Mantenere il tempo in numeri interi evita una serie di errori di arrotondamento in virgola mobile durante l'elaborazione di centinaia di cue. Il parser e il serializzatore scelgono la punteggiatura specifica del formato dopo l'aritmetica.

Lo spostamento di entrambi i limiti dell'indicazione preserva la durata tranne quando è bloccato a zero

Per le cue ordinarie viene aggiunto lo stesso offset all'inizio e alla fine: una didascalia da 02:00.000 a 02:03.500 dura 3.5 secondi prima e dopo lo spostamento. Cambiare solo l'inizio lo allungherebbe; cambiare solo la fine lo comprimerebbe. ShiftCues di ToolAcre si mappa sui segnali analizzati e aggiorna entrambi i valori senza riscrivere il testo della didascalia, quindi la punteggiatura o l'etichetta dell'oratore rimangono attaccate allo stesso segnale. Controlla la prima riga e quella successiva per assicurarti che l'operazione scelta sia uno spostamento, non un ridimensionamento del frame rate.

Bloccaggio a zero: cosa succede ai segnali che si sposterebbero prima dell'inizio del video e perché non possono avere tempi negativi

I timestamp negativi non sono tempi di sottotitoli validi. ToolAcre blocca un inizio o una fine che attraversa lo zero tornando a zero e segnala il numero di segnali interessati. Questa è l'importante eccezione alla preservazione della durata: un segnale originariamente di 0.8–2.8 secondi spostato di −1.85 secondi ha un inizio negativo e una fine di 0.95 secondi, quindi la sua durata non è più di due secondi. Un segnale precedente potrebbe bloccare entrambe le estremità a zero. Rivedi o rimuovi i segnali di apertura bloccati invece di affermare che il risultato è esatto vicino all'inizio.

Esempio pratico: spostamento dei sottotitoli di una lezione di 40 minuti di -1,850 ms - prima e dopo gli spunti, controllati all'inizio, al centro e alla fine

Per una lezione di quaranta minuti, considera gli spunti a 00:10.000–00:12.400 e 20:15.000–20:17.000. Un turno −1,850 ms produce 00:08.150–00:10.550 e 20:13.150–20:15.150. Anche un segnale finale a 39:55.000 si sposta 1.85 secondi prima: la distanza dal dialogo dovrebbe rimanere costante in tutti e tre i checkpoint. Se il segnale finale è ancora fuori sincrono per molti secondi mentre il primo è corretto, annulla la modifica e indaga invece sulla deriva.

Ciò che questo non copre è la deriva che cresce nel tempo, che un offset fisso non può correggere

Un offset fisso non può risolvere una traccia audio modificata a una velocità diversa, un video tagliato con fotogrammi mancanti, una conversione a frame rate variabile o didascalie allineate a una versione diversa. Inoltre, non è possibile recuperare i dialoghi assenti dal file dei sottotitoli. La conversione della formattazione tra SRT e VTT è un'operazione separata; Non si dovrebbe dare per scontato che il retime traduca parole o migliori le descrizioni di accessibilità. Conserva il file sorgente finché un essere umano non ha osservato spunti rappresentativi rispetto al video.

Conclusione: misura una volta, sposta tutto: come la funzione di retime di Subtitle Toolkit applica l'offset a ogni cue nel file

Misura la differenza costante una volta, applicala a ogni inizio e fine e presta particolare attenzione ai segnali che attraversano lo zero. Subtitle Toolkit esegue l'analisi e la scrittura in millisecondi localmente, quindi il testo della didascalia non viene caricato. Il controllo prezioso non è che il download sia completato; è che la prima, la parte centrale e l'ultima riga pronunciata ora corrispondono ai loro segnali.