SRT o VTT: qual è la differenza e quale file di sottotitoli usare?
In cosa differiscono, riga per riga, i due file di sottotitoli più diffusi, quali piattaforme accettano l’uno o l’altro e come convertirli senza rovinare i tempi.
Aggiornato il 8 min di letturaA cura del team di AutoCap
La risposta breve
Usa SRT quando carichi i sottotitoli su una piattaforma video e non sai cosa richiede. È il più semplice dei due, e YouTube, Vimeo e LinkedIn lo accettano tutti. Usa VTT (WebVTT) quando i sottotitoli verranno riprodotti in una pagina web che gestisci tu (un player HTML5, una piattaforma di corsi, il tuo sito) o quando ti serve qualcosa che SRT non può esprimere, come spostare un sottotitolo nella parte alta dell’inquadratura.
Sono entrambi file di testo semplice. Entrambi contengono la stessa cosa di base: un elenco di sottotitoli, ognuno con un tempo di inizio, un tempo di fine e le parole da mostrare. Puoi convertire l’uno nell’altro in pochi secondi. Le differenze sono piccole, ma sono proprio i dettagli che fanno fallire un caricamento.
Cos’è un file SRT
SRT sta per SubRip Subtitle. Il nome viene da SubRip, un software gratuito che estrae dai DVD i sottotitoli e i relativi tempi e li salva in un file di testo. Ogni sottotitolo ha quattro parti:
- Un numero progressivo, a partire da 1.
- Una riga dei tempi: il tempo di inizio e quello di fine separati da
-->, ognuno scritto comeore:minuti:secondi,millisecondi. - Una o più righe di testo del sottotitolo.
- Una riga vuota che chiude il sottotitolo.
Ore, minuti e secondi hanno sempre due cifre e i millisecondi sempre tre, quindi dieci secondi e mezzo si scrivono 00:00:10,500. Il Centro assistenza di Vimeo riporta la stessa regola nella sua pagina di risoluzione dei problemi per i file di sottotitoli.
Il formato è tutto qui. Alcuni player riconoscono qualche tag in stile HTML nei file SRT, come <i> per il corsivo, ma non c’è alcuna garanzia. YouTube, per esempio, dichiara di supportare solo file SRT di base, di non riconoscere al loro interno alcun markup di stile e di richiedere testo semplice in UTF-8.
Cos’è un file VTT
VTT è l’abbreviazione di WebVTT, il formato Web Video Text Tracks, una specifica del W3C. È il formato che i browser usano per i sottotitoli collegati ai video HTML5. I suoi sottotitoli somigliano molto a quelli di SRT, e aggiunge ciò che serve a un player web: posizionamento, stili, commenti e indicazione di chi parla.
Un file WebVTT deve iniziare con la parola WEBVTT seguita da una riga vuota, e deve essere codificato in UTF-8. Quando viene servito da un sito web, il suo tipo MIME è text/vtt. I numeri dei sottotitoli sono facoltativi: un sottotitolo può avere qualsiasi identificatore, o nessuno. I timecode mettono un punto prima dei millisecondi, e le ore si possono omettere quando sono zero, quindi 00:10.500 è valido.
Gli stessi sottotitoli nei due formati
Ecco tre sottotitoli di un breve tutorial, prima in formato SRT:
1
00:00:01,200 --> 00:00:03,800
Welcome back. Today we're testing
three ways to light a small room.
2
00:00:04,100 --> 00:00:06,500
The first one costs nothing:
just move the desk to the window.
3
00:00:07,000 --> 00:00:08,400
[laughs] Seriously, try it.E gli stessi sottotitoli in WebVTT, con alcune funzioni che SRT non ha:
WEBVTT
NOTE Lighting tutorial, English captions, v2
STYLE
::cue(.sound) {
color: yellow;
}
1
00:00:01.200 --> 00:00:03.800
<v Maya>Welcome back. Today we're testing
three ways to light a small room.
2
00:00:04.100 --> 00:00:06.500 line:10%
<v Maya>The first one costs nothing:
just move the desk to the window.
laugh
00:07.000 --> 00:08.400
<c.sound>[laughs]</c> Seriously, try it.Leggendo la versione VTT dall’alto: l’intestazione obbligatoria; un commento NOTE che i player ignorano; un blocco STYLE che colora tutto ciò che ha la classe .sound; tag di voce che indicano chi parla; un’impostazione (line:10%) che sposta il secondo sottotitolo vicino alla parte alta dell’inquadratura; un identificatore testuale (laugh) al posto di un numero; e un ultimo timecode senza le ore.
Le differenze che contano
L’intestazione
Un file VTT senza WEBVTT nella prima riga non è valido, e un parser rigoroso lo rifiuta. SRT non ha alcuna intestazione: il file inizia dal sottotitolo numero 1. Ecco perché rinominare captions.srt in captions.vtt non funziona: manca l’intestazione e i timecode usano ancora la virgola.
Timecode
SRT scrive 00:00:04,100. VTT scrive 00:00:04.100, oppure 00:04.100. Virgola o punto sembra un dettaglio, ma un parser che si aspetta l’una può rifiutare l’altro.
Posizionamento
Le impostazioni di un sottotitolo VTT vanno sulla riga dei tempi, dopo il tempo di fine:
line– la posizione verticale, come numero di riga o percentuale;position– il rientro orizzontale, in percentuale;size– la larghezza del riquadro del sottotitolo;align– l’allineamento del testo: start, center, end, left o right;vertical– testo verticale, per i sistemi di scrittura che lo richiedono;region– un’area con nome definita in un bloccoREGION, utile per i sottotitoli a scorrimento.
È così che sposti un sottotitolo per non coprire un sottopancia o altro testo a schermo. L’SRT di base non ha modo di posizionare un sottotitolo.
Stile
VTT supporta tag inline – grassetto, corsivo, sottolineato, span di classe (<c>) e annotazioni ruby – più blocchi STYLE con regole CSS per lo pseudo-elemento ::cue. Quanto di tutto questo venga rispettato dipende dal player. YouTube supporta il posizionamento nei file VTT, ma limita gli stili a grassetto, corsivo e sottolineato. Se i sottotitoli devono avere un certo aspetto ovunque, l’unico metodo affidabile è imprimerli nel video.
Commenti, interlocutori e lingue
I blocchi NOTE contengono commenti (una nota del traduttore, un numero di versione, un promemoria) che chi guarda non vede mai. I tag di voce (<v Maya>) indicano chi parla in un formato leggibile dal software, e gli span di lingua segnalano un passaggio in un’altra lingua. SRT non ha niente di tutto questo: ogni riga di testo di un sottotitolo SRT viene mostrata a chi guarda.
Sottotitoli, capitoli e descrizioni
In una pagina web, un file VTT si collega a un video con l’elemento <track>, e il suo attributo kind indica a cosa serve il file. Lo standard HTML definisce cinque tipi:
subtitles– una trascrizione o traduzione dei dialoghi, per chi sente l’audio ma non lo capisce. È il valore predefinito quandokindmanca.captions– dialoghi più effetti sonori, musica e altri suoni rilevanti, per quando l’audio non è disponibile o è difficile da sentire.descriptions– descrizioni testuali di ciò che appare sullo schermo, pensate per essere lette da una sintesi vocale per chi non può vedere il video.chapters– titoli dei capitoli per navigare nel video.metadata– dati per gli script, non mostrati a chi guarda.
<video controls src="lighting.mp4">
<track kind="captions" src="lighting.en.vtt"
srclang="en" label="English" default>
<track kind="chapters" src="lighting.chapters.vtt"
srclang="en">
</video>I browser si aspettano questi file in formato WebVTT, quindi un sito che ha solo file SRT deve prima convertirli. Due dettagli pratici dalla documentazione di MDN: srclang è obbligatorio quando il tipo è subtitles, e il file della traccia deve provenire dalla stessa origine della pagina, a meno che l’elemento video non abbia un attributo crossorigin.
SRT e VTT a colpo d’occhio
| Caratteristica | SRT | VTT (WebVTT) |
|---|---|---|
| Estensione del file | .srt | .vtt |
| Origine | SubRip, un programma per estrarre i sottotitoli dai DVD | Specifica WebVTT del W3C |
| Intestazione | Nessuna | WEBVTT nella prima riga (obbligatoria) |
| Identificatori dei sottotitoli | Numeri progressivi | Facoltativi; qualsiasi testo |
| Timecode | 00:01:04,100 | 00:01:04.100 o 01:04.100 |
| Ore | Sempre indicate | Facoltative se sono zero |
| Posizionamento | Non previsto nel formato di base | line, position, size, align, vertical, region |
| Stile | Alcuni player leggono tag semplici; YouTube li ignora | Tag inline, più CSS nei blocchi STYLE |
| Commenti | No | Blocchi NOTE |
| Indicazione di chi parla | No | Tag di voce <v> |
| Codifica | Usa UTF-8 (YouTube lo richiede) | UTF-8 obbligatorio |
| <track> di HTML5 | No | Sì |
| Ideale per | Caricamenti su piattaforme video, file da passare ad altri strumenti | Player web, piattaforme di corsi, siti che gestisci tu |
Quali piattaforme accettano quale formato
I requisiti di caricamento cambiano, quindi controlla la pagina di assistenza della piattaforma prima di caricare molti file. Situazione aggiornata a settembre 2026:
- YouTube li accetta entrambi, insieme a molti altri formati. I file SRT devono essere di base e in semplice UTF-8, senza stili; i file VTT possono contenere il posizionamento, con stili limitati a grassetto, corsivo e sottolineato. La procedura passo passo: come caricare un file SRT su YouTube.
- Vimeo accetta SRT e WebVTT sia per i sottotitoli standard sia per quelli per non udenti, consiglia WebVTT e chiede la codifica UTF-8.
- Il Centro assistenza di LinkedIn spiega come allegare un file SRT quando pubblichi un video dal sito desktop.
- I video HTML5 sul tuo sito usano WebVTT tramite
<track>.
I video verticali brevi sono un caso a parte. Su TikTok, Instagram Reels e YouTube Shorts, imprimere i sottotitoli nell’immagine è spesso la scelta più pratica, perché lo stile resta con il video in qualunque app o contesto venga riprodotto. I pro e i contro sono spiegati in open caption e closed caption.
Come convertire da un formato all’altro
Da SRT a VTT
- Aggiungi
WEBVTTcome prima riga, seguita da una riga vuota. - In ogni riga dei tempi, sostituisci la virgola prima dei millisecondi con un punto:
00:00:04,100diventa00:00:04.100. - Salva il file in UTF-8 con estensione
.vtt.
I numeri dei sottotitoli possono restare: in VTT diventano semplicemente identificatori. Cambia le virgole solo nelle righe dei tempi, perché un “trova e sostituisci” fatto alla cieca modifica anche ogni virgola del testo dei sottotitoli. Il convertitore da SRT a VTT gratuito esegue tutti e tre i passaggi al posto tuo.
Da VTT a SRT
- Elimina l’intestazione
WEBVTTe gli eventuali blocchiNOTE,STYLEeREGION. - Numera i sottotitoli partendo da 1, sostituendo eventuali identificatori testuali.
- Scrivi ogni timecode per intero come
HH:MM:SS,mmm: aggiungi00:dove mancano le ore e sostituisci il punto con una virgola. - Rimuovi le impostazioni come
line:10%dalla fine delle righe dei tempi. - Elimina i tag di voce, classe, lingua, ruby e timecode. Se un tag di voce indicava chi parla e chi guarda ha bisogno di saperlo, trasformalo in un’etichetta visibile.
In questa direzione si perdono informazioni (posizioni, stili e indicazioni di chi parla), quindi conserva il VTT originale. Il convertitore da VTT a SRT si occupa della nuova numerazione e della riscrittura dei timecode. Se i sottotitoli convertiti sono sempre in anticipo o in ritardo, il problema è un altro: sposta tutti i sottotitoli in una volta con lo strumento Sposta sottotitoli.
Quale usare?
- Per caricare su YouTube, Vimeo o LinkedIn: SRT funziona su tutte e tre. Su YouTube o Vimeo passa a VTT se ti serve posizionare i sottotitoli.
- Per il tuo sito o il player dei tuoi corsi: VTT, collegato con
<track kind="captions">. - Se passi i sottotitoli a chi monta il video o a chi li traduce: chiedi quali formati leggono i suoi strumenti. Se non te lo sa dire, SRT è la scelta più sicura.
- Per conservare una copia di riferimento: esporta entrambi dalla stessa trascrizione corretta, così ogni correzione finisce in tutti e due i file.
Qualunque formato tu scelga, le parole e i tempi contano più del contenitore. Un file formattato alla perfezione con un nome frainteso nel sottotitolo 12 resta sbagliato. Il generatore di SRT e il generatore di VTT di AutoCap scrivono entrambi i formati, con i piani a pagamento, a partire dalla trascrizione che hai corretto e con i tempi di ogni singola parola, così i due file non si contraddicono mai.
Domande
Posso rinominare un file .srt in .vtt?
Non basta. Un file VTT deve avere WEBVTT nella prima riga e un punto al posto della virgola prima dei millisecondi. Aggiungi l’intestazione e correggi i timecode, oppure passa il file in un convertitore da SRT a VTT.
YouTube preferisce SRT o VTT?
YouTube li accetta entrambi. SRT è la scelta più semplice. Usa VTT se ti serve un sottotitolo in una posizione diversa da quella predefinita: YouTube supporta il posizionamento nei file VTT, ma ignora il markup di stile nei file SRT.
Quale formato di sottotitoli supporta gli stili?
WebVTT. Supporta tag inline e CSS tramite i blocchi STYLE, anche se ogni player decide quanto rispettarli. SRT non ha uno stile standard, e YouTube ignora il markup nei file SRT.