GUIDA PER SINCRONIZZARE I TUOI SOTTOTITOLI AL VIDEO

by fr0do 01/26/2001
tradotta da _YuSaKu_ il 26/08/2003

Hai scaricato dei sottotitoli dal Web ma hai scoperto che è impossibile farli andare in sincrono con il tuo film o addirittura non puoi usare quel formato con il tuo lettore di files AVI.
Questa guida è utile per correggere quei sottotitoli assolutamente inguardabili ma può essere usata anche per quei sottotitoli che hai estratto e, per qualche arcano motivo, non sono in sincrono con il tuo filmato.

Una piccola precisazione sul software usato: in genere, sono 2 i programmi che ti permettono di avere sotto controllo qualsiasi aspetto dei sottotitoli: SubAdjuster (v1.41) scritto da Frodo and SubAdjust (v1.55) scritto da Psyche.

Siccome sono l'autore di SubAdjuster lo userò come software di riferimento lungo tutti i passi di questa guida ma potete usare anche SubAdjust 1.51 per fare tutto il lavoro, visto che i passi da seguire sono sempre gli stessi.

>> Approfondimenti su
Estrazione dei sottotitoli

Punto 1: Conversione nel formato desiderato

Hai il tuo bel file dei sottotitoli, ma non sai in che formato è? In generale, sono 5 i formati principali che possiamo trovare (perdonatemi se il vostro formato preferito non figura in questa lista ;-) :


Il mio preferito è MicroDVD perché è compatto, potente (permette di inserire anche i caratteri in italico) semplice da modificare e il lettore MicroDVD è il migliore sulla piazza per poter leggere i sottotitoli.

Mi concentrerò principalmente su MicroDVD con alcuni suggerimenti per SubViewer perché questi sono i 2 formati più usati.

Come identificare in che formato sono i sottotitoli (guarda gli esempi)? Purtroppo è abbastanza comune trovarsi con dei sottotitoli che sono dichiarati essere di un formato e poi ce li ritroviamo di un'altro tipo ancora, quindi dobbiamo controllare noi stessi:

MicroDVD *.* Un file di testo compatto con frame di inizio e fine racchiusi ta parentesi {} all'inizio di ogni linea. Interruzioni di linea segnalate con |
SubViewer *.SUB Contiene informazioni sul filmato. Ogni sottotitolo ha il tempo di inizio e di fine
SubViewer 2.0 *.SUB Differenza con il vecchio formato SubViewer: ogni sottotitolo è su una sola linea e le interruzioni sono segnalate con [br]
SubRip *.SRT I tempi di inizio e di fine di ogni sottotitolo sono segnalati in millisecondi
SubStationAlpha *.SSA File di testo formattato con ogni linea dei sottotitoli che inizia con 'Dialogue'
Sami *.SMI Raro. Formato HTML con tempi di inizio e di fine per ogni sottotitolo

Adesso, assicurati quale sia il framerate del tuo filmato:
Puoi usare VirtualDub (con l'opzione AVI-info, molto precisa), SubAdjust (precisa) o il lettore multimediale (dal menù preference scegli video rendering, non molto preciso).
Supponiamo che il framerate DEL TUO FILMATO sia 25 fps.

Conversione dei sottotitoli in formato MicroDVD:
Per convertirlo dal formato SubViewer puoi usare SubAdjuster con questo comando:

SUB <your file> <new file> -R25 -CONV

Il parametro -R specifica il framerate del tuo filmato AVI ed è MOLTO importante impostare il valore giusto fin da subito, altrimenti questo comporta un lavoro supplementare per correggerlo in seguito.

Puoi usare SubAdjust per convertire da e in altri formati se ne hai bisogno.

Dopo ti consiglio di lanciare il seguente comando:

SUB <your new file> <new file> -FIX

per correggere gli errori di spelling (I's invece di l's), errori di spazi (spazi ripetuti o presenti tra i caratteri di una parola) che si possono verificare durante il processo di estrazione.

(BTW: Puoi usare il file batch FIX.BAT per fare il lavoro di conversione e di correzione in un unica volta, per esempio con il comando FIX <filename> <framerate> )

Adesso ha creato un file perfetto (?) dei sottotitoli nel formato MicroDVD con il giusto framerate per il tuo film.

Punto 2: Correzione di sottotitoli particolarmente sfalsati

Che cosa farai quando i sottotitoli non sono in formato SubViewver o SubRip ma in formato MicroDVD e il framerate non è uguale a quello del tuo bellissimo film?
Sembra che tutto sia completamente sfalsato, no?

In genere hai due possibilità:

Se vete deciso di usare il secondo metodo eseguite queste operazioni:

  1. Aprite il file dei sottotitoli (in formato MicroDVD) e osservate il primo sottotitolo (può anche non essere il primo, ma così facendo avrete una precisione maggiore).
    Osservate anche il frame in cui dovrebbe apparire, per esempio:
  2. {1025}{1110}The Age of Gods was closing.|Eternity had come to an end.

    Il frame di inizio è il 1025.

  3. Ripetete lo stesso passo di prima con l'ultimo sottotitolo (ma puo anche non essere l'ultimo...) e segnatevi quando deve apparire, per esempio:.
  4. {171740}{171842}Lay down your head upon my breast,|and go to sleep, my love.

    Il frame è il 171740.

  5. Adesso guarda nel film fino al momento esatto in cui il primo sottotitolo DOVREBBE apparire (che naturalmente deve essere la stessa frase del sottotitolo scelto).
    Segnatevi il tempo esatto, per esempio. 120.5 secondi.

  6. Ripetete la stessa operazione di prima andando però a vedere dove l'ultimo sottotitolo DOVREBBE APPARIRE (di nuovo, deve essere la stessa frase rispetto a quello scelto in precedenza).
    Segnatevi il tempo esatto in secondi, per esempio 91 minuti e 40 secondi = 5500 secondi.

  7. Controllate l'esatto framerate DEL VOSTRO FILM. Potete usare VirtualDUB; aprite il file e selezionate Informations dal menù File.
    Per esempio. è un filmato PAL a 25 fps.

  8. Adesso avete tutti i dati per lanciare il comando:

    SUB <sourcefile> <newfile> -1F1025 -2F171740 -1T120.5 -2T5500 -R25 -SYNCH

    I parametri sono i seguenti:
    -1F il frame del primo sottotitolo nel file (in questo caso 1025)
    -2F il frame dell'ultimo sottotitolo del file (in questo caso 171740)
    -1T  il tempo in secondi in cui il primo sottotitolo deve comparire (in questo caso 120.5)
    -2T il tempo in secondi in cui l'ultimo sottotitolo deve comparire (in questo caso 5500)
    -R   l'esatto framerate del film (in questo caso 25 fps)

    Questo creererà sottotitoli che dovrebbero essere sincronizzati con il tuo filmato.

Se vedete che c'é ancora una certa desincronizzazione passate alle istruzioni descritte al punto 8.

Se sono presenti ancora delle irregolarità nei tempi dei sottotitoli può darsi che alcuni valori non siano corretti. Riprovate di nuovo facendo attenzione a riportare i valori corretti.

Però, se siete sicuri che tutti i valori sono corretti ma i sottotitoli sono ancora desincronizzati (in alcuni punti di più, in altri di meno) probabilmente il tuo filmato non è compatibile al 100% con i sottotitoli di cui disponi perché mancano alcune scene che sono state tagliate o dal filmato o dai sottotitoli. In questo caso è dura correggerli.
Ma non è impossibile: devi prima trovare le scene tagliate ed eliminare dai sottotitoli le battute tagliate per poi ripetere tutto il Passo 2. Fare riferimento al Passo 9 per ulteriori consigli.

Può rivelarsi utile anche il metodo di sincronizzazione descritto al Passo 3, visto che permette di trovare più facilmente le scene che sono state tagliate.

Punto 3: Conversione manuale del framerate (solo per sottotitoli in formato MicroDVD)

Più che un metodo scientifico questo è uno stratagemma; dal formato MicroDVD non possiamo trovare immediatamente il framerate di un filmato, dobbiamo quindi fare un calcolo approssimato per avvicinarci il più possibile al framerate giusto.

Un buon metodo per fare questo calcolo approssimativo è il seguente:

Controllate la durata del film, diciamo approssimativamente che dura 102 minuti, quindi sottraete il tempo iniziale che trascorrerà fino a che non ci sarà qualcuno che parlerà (in genere 2 minuti) e anche il tempo che c'é tra le ultime battute pronunciate fino alla fine del film (in genere 5 minuti). Abbiamo stimato quindi che 102 - 2 - 5 = 95 minuti = 5700 secondi. (Ovviamente, potete controllare manualmente i tempi in cui la prima e l'ultima battuta vengono pronunciate, per avere un valore corretto al 99% del vostro framerate).

Adesso passate al file dei sottotitoli:

La prima riga (che dovrebbe sempre essere sempre uguale al parlato) è per esempio:

{1025}{1110}The Age of Gods was closing.|Eternity had come to an end.

Mentre l'ultima riga (non quella con le informazioni sul copyright o dei crediti) è:

{171740}{171842}Lay down your head upon my breast,|and go to sleep, my love.

La differenza tra i frames è 171740 - 1025 = 170715

Adesso possiamo calcolare il framerate approssimativo: 170715 frames / 5700 secondi = 29.95 fps

Okay, è molto vicino al valore di framerate di un filmato NTSC 29.97 quindi assumiamo come punto fermo che quello è il valore usato in fase di creazione dei sottotitoli.
Tutto quello che dovete fare adesso è creare un nuovo file con il nuovo framerate. Usate SubAdjust con il comando:

SUB <old file> <new file> -O29.97 -N25

Questo vi creerà un nuovo file con il framerate a 25 di cui abbiamo bisogno per il nostro filmato (il parametro -N indica il nuovo framerate mentre il parametro -O indica il vecchio framerate). Altri valori di framerate conosciuti e che puoi provare sono i seguenti:

Ma ricorda: forse il framerate è già corretto all'origine nel file e ci troviamo di fronte soltanto ad un ritardo nei sottotitoli - in questo caso è meglio non toccare assolutamente niente e lasciare il tutto inalterato. Per esempio:
Se calcolate un framerate di 30 ma il vostro filmato ha un framerate di 29.97 dovete controllare prima se il vostro framerate già si adatta al filmato. In questo caso seguite i passi da 4 al 6 e controllate se tutto è in sincrono.

Punto 4: Calcolo del ritardo dei sottotitoli

Fai partire il tuo film e arriva al punto in cui si parla per la prima volta. Segnati il tempo in cui questo sottotitolo deve apparire, facciamo per esempio dopo 32 secondi.

Ferma il film e osserva il sottotitolo. Deve essere esattamente uguale a quello che hai sentito pronunciare nel film. Osserviamo il timestamp (se stiamo lavorando con il formato SubViewer):

00:00:41.00,00:00:44.40
The Age of Gods was closing.[br]Eternity had come to an end.

O il numero dei frames (se stiamo lavorando con il formato MicroDVD)

{1025}{1110}The Age of Gods was closing.|Eternity had come to an end.

Nel formato SubViewer si vede chiaramente il ritardo perché ogni timestamp è dato secondo il formato:

ore:minuti:secondi.centesimi-di-secondo

Ritornando al nostro esempio potete notare all'istante che il ritardo è di circa 9 secondi. Nel formato MicroDVD si deve calcolare il tempo ricavandolo dal framerate:

1025 frames diviso per 25 (nel nostro caso) frames al secondo = 41 secondi.

Punto 5: Spostare il primo sottotitolo nella posizione corretta

Adesso è l'ora di usare i tools per fare lo shift dei sottotitoli. Se usate MicroDVD potete usare il comando:

SUB <your file> <new file> -S-9 -R25

che significa che eseguite uno shift in negativo di 9 secondi (ovvero che il sottotitolo partirà 9 secondi prima).
O in alternativa potete dare i frames esatti per eseguire lo shift (9 secondi * 25 fps = 225 frames):

SUB <your file> <new file> -225

Se usate il formato SubViewer potete usare SubAdjust per effettuare lo shift.

Punto 6: Sincronizzazione avanzata del primo sottotitolo

Adsso fai partire il tuo film e guarda i sottotitoli SU CUI È STATO EFFETTUATO LO SHIFT. Arriva al punto desiderato e controlla se è corretto.
Se il risultato non ti soddisfa (normalmente non è mai perfetto al 100% con il primo tentativo) devi spostare nuovamente i sottotitoli nel verso giusto (vale a dire, dai valori negativi se i sottotitoli sono ancora in ritardo e valori positivi se sono in anticipo).

Per esempio, muovi indietro i sottotitoli di altri 10 frames (l'esempio si riferisce al file a cui NON è stato applicato lo shift effettuato con il Punto 3):

SUB <your file> <new file> -235

Ripetere questo passo fino a che il risultato non ti soddisfa.

Punto 7: Sincronizzazione del framerate

Okay, adesso i primi sottotitoli sono a posto ma con l'andare avanti del film i sottotitoli sono fuori sincrono di nuovo. Che cosa posso fare adesso?

Il motivo è semplice: il framerate del filmato non è esattamente uguale a quello dei sottotitoli.

Trovate un punto dove tra film e i sottotitoli ci sia un secondo di differenza (va benissimo anche un punto qualsiasi a vostra scelta e che possa fare al caso nostro). Segnamoci il tempo di riferimento di questo punto scelto.
Si trova al minuto 15, ovvero 900 secondi.

Adesso creiamo un nuovo file:
900 secondi è il valore in ritardo di un secondo, quindi useremo il valore di 900 come vecchio framerate e 901 come nuovo framerate (+1 secondo) se i sottotitoli appaiono troppo presto oppure 899 (-1 secondo) se i sottotitoli appaiono in ritardo:

SUB <latest file> <new file> -O900 -N901

Okay, adesso usate il nuovo file appena creato e guardate nuovamente il film con i sottotitoli. Adesso dovrebbe andare meglio rispetto a prima ma non ancora perfetto, sopratutto verso la fine del film. Quindi andiamo avanti con la sincronizzazione.

Passo 8: Sincronizzazione avanzata, sincronizzazione avanzata e ancora sincronizzazione avanzata...

Adesso arriva la parte noiosa. Dovete provare ad individuare l'errore del framerate e ricalcolarlo fino a che non riuscite ad ottenere un risultato soddisfaciente.

La prima cosa da fare è controllare se il primo sottotitolo che appare è sempre in sincronia. Se ciò non avviene (e può capitare se il calcolo del framerate effettuato al punto 7 ci rende una grande differenza) dovete ripetere il passo 6 ma mantenendo l'ultimo file creato al punto 7 e spostando i frames di, per esempio, 10 frames:

SUB <latest file> <new file> 10

Ripetere l'operazione fino a che non trovate i valori giusti.

La seconda cosa da fare è controllare di nuovo se i sottotitoli sono fuori sincrono di almeno un secondo. supponiamo che il film duri un'ora ovvero 3600 secondi e i sottotitoli vengono visualizzati in ritardo. Creiamo quindi un nuovo file con il comando:

SUB <latest file> <new file> -O3600 -N3599

Controllate di nuovo e fate altri aggiustamenti fino a che il risultato non vi soddisfa (non dimenticate che potete usare anche frazioni di secondo e magari il valore di framerate di 3599.23 può darvi il risultato migliore)

Se a questo punto non siete riusciti a cavare un ragno dal buco ricominciate di nuovo partendo dal punto 6 sincronizzando prima il ritardo, e poi il framerate fino a che il risultato non vi soddisfa oppure fino a che non vi casca la testa sulla tastiera perché vi state addormentando...

Rilassatevi: ci vorrà al massimo mezz'ora di lavoro per sincronizzare anche i sottotitoli più sgangherati che ci siano se avete un minimo d'esperienza. Personalmente non perdo mai più di 10 minuti per questa operazione. Oppure, se ho rippato io stesso i sottotitoli, dopo il processo di conversione e di controllo l'unica cosa da fare è correggere un ritardo (magari dovuto alla presenza nel VOB di un trailer all'inizio che ho eliminato in fase di conversione).

Punto 9: I sottotitoli continuano ad andare fuori sincrono

Che cosa succede: subito dopo alcuni minuti di perfetto sincronismo i miei sottotitoli sono completamente fuori sincrono, ci sono più sottotitoli rispetto a quelli di cui ho bisogno?

Il motivo è abbastanza semplice: il tuo film è stato censurato o tagliato per il tuo mercato e/o utenza togliendo alcune scene dalla pellicola. Quindi ci possono essere incongruenze sia nei sottotitoli (estratti da una versione diversa da quella di cui sei in possesso) o nel film vero e proprio nel quale non sono presenti determinate scene proprio perché tagliate (una volta è successo pure a me).

Cerca di trovare il punto esatto in cui queste scene mancano.
Se ci troviamo nel caso in cui sia il film ad essere stato tagliato e sono i sottotitoli ad essere ridondanti (oppure in caso ci siano delle pause troppo lunghe tra 2 o più sottotitoli) potete usare il comando (assumendo come esempio il taglio di una scena di 10 secondi al minuto 35 di un film a 25 fps):

SUB <latest file> <new file> 52500 52750 -CUT

per togliere il relativo testo dal file. Il primo valore (52500) è il realtivo frame di inizio (35 minuti * 60 secondi in un minuto * 25 fps) mentre il secondo valore è il relativo frame finale (52500 frames + 10 secondi * 25 fps).

Se invece ci troviamo nel caso in cui siano proprio alcuni sottotitoli a mancare possiamo farci veramente poco; non possiamo certo inventarceli! Si può però sincronizzare tutti gli altri sottotitoli rimanenti.

Per fare questo dovete dividere in 2 il file esattamente nel punto in cui c'é il taglio della scena e quindi spostare i tempi del secondo file fino a che non trovate la sincronia giusta (cercate di aiutarvi prendendo come punto di arrivo il dialogo successivo che deve apparire nei sottotitoli.
Dopo di che potete unire nuovamente insieme i 2 files.

CONSIDERAZIONI FINALI

Quando scrissi questa guida mi resi conto che c'é bisogno di molto lavoro per avere sottotitoli perfettamente sincronizzati e voi vi chiederete se il gioco vale la candela.
Ovviamente, dipende da quanto sono importanti per voi i sottotitoli, ma secondo me aggiungono valore al film. E, anche se siete nella fortunata posizione (?) nella quale il vostro film è doppiato dall'inglese alla vostra lingua madre (come nel mio caso) e non avete bisogno dei sottotitoli, può essere utile per imparare una nuova lingua. E ad essere onesti, i doppiaggi migliorano sempre la qualità di un film? Io sono convinto che i film perdono molto se non vengono guardati nel loro linguaggio originale (supponendo che le vostre conoscenze di quella determinata lingua non siano poi così male ovviamente).
E dopotutto, la creazione dei sottotitoli non è un processo così lungo che al contrario diventerà sempre più veloce di volta in volta (una ragione su tutte: SubRip "impara" di volta in volta nuovi caratteri ma anche perché guadagnate voi di esperienza). Quindi, anche se all'inizio risulterà un pò complicato, dovete assolutamente provare.

ESEMPI DI FORMATI DI SOTTOTITOLI DIFFERENTI:

Vengono dati solo i riferimenti tipici di ogni formato con alcune linee di esempio.

MicroDVD:

{1025}{1110}The Age of Gods was closing.|Eternity had come to an end.
{1375}{1460}The heavens shook as the armies|of Falis, God of Light...

SubRip:

1 00:02:26,407 --> 00:02:31,356
Detta handlar om min storebrors
kriminella beteende och foersvinnade.

2 00:02:31,567 --> 00:02:37,164
Vi talar inte laengre om Wade. Det aer
som om han aldrig hade existerat.

SubViewer:

[INFORMATION]
[TITLE]xxxxxxxxxx
[AUTHOR]xxxxxxxx
[SOURCE]xxxxxxxxxxxxxxxx
[FILEPATH]
[DELAY]0
[COMMENT]
[END INFORMATION]
[SUBTITLE]
[COLF]&HFFFFFF,[STYLE]bd,[SIZE]18,[FONT]Arial
00:00:41.00,00:00:44.40
The Age of Gods was closing.
Eternity had come to an end.

00:00:55.00,00:00:58.40
The heavens shook as the armies
of Falis, God of Light...

SubViewer 2.0:

[INFORMATION]
[TITLE]xxxxxxxxxx
[AUTHOR]xxxxxxxxxx
[SOURCE]xxxxxxxxxx
[PRG]
[FILEPATH]
[DELAY]0
[CD TRACK]0
[COMMENT]
[END INFORMATION]
[SUBTITLE]
[COLF]&H00FFFF,[STYLE]no,[SIZE]12,[FONT]Courier New
00:00:07.00,00:00:11.91
THERE IS A PLACE ON EARTH WHERE IT[br]IS STILL THE MORNING OF LIFE...

00:00:12.48,00:00:15.17
AND THE GREAT HERDS RUN FREE.[br]SO WHAT?!

SubStationAlpha:

[Script Info]
Title:
Original Script:
Original Translation:
Original Editing:
Original Timing:
Original Script Checking:
Synch Point:
Script Updated By:
Update Details:
ScriptType: v4.00
Collisions: Normal
PlayResY: 864
PlayDepth: 0
Timer: 100.0000

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,65535,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,0

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:02:32.85,0:02:34.33,*Default,1,0000,0000,0000,,Bio-readouts are all in the green. Looks like she's alive.

Sami:

<SAMI>
<HEAD>
<TITLE>Whatever</TITLE>
<STYLE TYPE="text/css">
<!--
P {margin-left:8pt; margin-right:8pt; margin-bottom:2pt; margin-top:2pt;
text-align:center; font-size:20pt; font-family:egal, sans-serif;
font-weight:normal; color:white;}
.KRCC {Name:Korean; lang:kr-KR; SAMIType:CC;}
#STDPrn {Name:Standard Print;}
#LargePrn {Name:Large Print; font-size:24pt;}
#SmallPrn {Name:Small Print; font-size:16pt;}
-->
</Style>
</HEAD>
<BODY>

<SYNC Start=30886><P Class=KRCC>
The Age of Gods was closing.
<SYNC Start=34037><P Class=KRCC>
The heavens shook as the armies of Falis,