Sottotitoli WebVTT (.vtt)

Raccomandazione Standard

Web Video Text Tracks (WebVTT) è lo standard web ufficiale del W3C per le didascalie, i sottotitoli e le descrizioni dei capitoli. È integrato nativamente negli elementi video HTML5 (<track>) e nel moderno HTTP Live Streaming (HLS).

Converti da SRT a VTT

Convertitore gratuito da SRT a VTT nel browser. Converti i file istantaneamente sul tuo dispositivo.

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file WebVTT ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file WebVTT ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

57 45 42 56 54 54

RAPPRESENTAZIONE ASCII: WEBVTT

Standardizzazione: Raccomandazione W3C WebVTT

Specifiche tecniche

Architettura del contenitoreFile di testo UTF-8 che inizia con la firma 'WEBVTT', seguito da blocchi opzionali STYLE e NOTE e blocchi di sottotitoli sequenziali
CompressioneTesto normale non compresso (solitamente compresso su HTTP tramite Gzip o Brotli)
Endianness dei byteFlusso di testo UTF-8
Spazi colorePieno supporto del modulo colori CSS livello 4 negli stili dei sottotitoli
Canali e strutturaSegmenti con timestamp, livello di affidabilità del riconoscimento vocale, formattazione CSS e impostazioni della posizione sullo schermo
Dimensioni massimeNumero illimitato di segmenti in sequenza
TrasparenzaOpacità e trasparenza alfa CSS complete, supportate tramite lo pseudo-elemento '::cue'
Streaming e progressivoStreaming nativo in elementi HTML5 <video> e manifest video live HLS / DASH

Matrice di confronto tecnico: WebVTT vs Concorrenti

Attributo tecnicoWebVTT (Attuale)SRTASSSUB
Integrazione con HTML5Standard nativo al 100% (<track>)Richiede conversione JSRichiede WebAssemblyRichiede conversione
Stili CSSStili CSS nativi completi (::cue)Solo tag HTML di baseTag di override proprietariNessuno
Streaming HLS / DASHWebVTT è usato per le tracce di testo temporizzate nei video del browser e in alcune playlist streaming; il supporto del lettore dipende dal formato di distribuzioneSupportato tramite muxingSupporto di streaming limitatoNessuno
Requisito dell'intestazioneObbligo della stringa 'WEBVTT' sulla riga 1Nessuna intestazione richiestaSezione [Script Info]Nessuna intestazione richiesta

Modalità di corruzione comuni e guida al recupero esadecimale

Errore della console del browser: 'File WebVTT non valido: firma WEBVTT mancante'.

Causa principale: Stringa 'WEBVTT' mancante sulla riga 1 o righe vuote prima dell'intestazione.

Ripristino: Aggiungi 'WEBVTT\n\n' all'inizio del file utilizzando il convertitore di sottotitoli File2File.app.

Analisi di sicurezza e vettori di attacco del parser

I parser WebVTT dei browser elaborano segmenti non attendibili che possono causare attacchi di Cross-Site Scripting (XSS) se inseriti nel DOM senza prima sanificarli.

Vettori di attacco noti

  • Iniezione XSS tramite contenuti HTML non sanificati dei segmenti, inseriti nel DOM del lettore video web.
  • Server-Side Request Forgery (SSRF) durante la generazione automatica sul lato server delle miniature dei sottotitoli.
  • Interruzione del servizio tramite selettori CSS malformati dei segmenti.

Migliori pratiche difensive: Usa il rendering nativo dell'elemento <track> del browser e sanifica il contenuto dei segmenti prima di inserirlo manualmente nel DOM.

Origini storiche e tappe fondamentali

2019Il W3C fa avanzare ufficialmente WebVTT: The Web Video Text Tracks Format verso lo stato di raccomandazione proposta.
2011Rinominato da WebSRT a WebVTT per creare uno standard W3C distinto dal formato SubRip classico.
2010WHATWG introduce WebVTT per supportare le didascalie native nel tag HTML5 <video>.

Vantaggi principali

  • L’elemento HTML <track> usa WebVTT per sottotitoli e didascalie. I browser visualizzano tempi e stili delle cue tramite il lettore video, con alcune differenze nelle funzioni supportate.
  • Ampie possibilità di formattazione CSS: consente di personalizzare colori, font, sfondi e posizione con lo pseudo-elemento CSS nativo '::cue'.
  • I servizi HLS e MPEG-DASH possono distribuire tracce di sottotitoli WebVTT insieme ai segmenti video. Verifica che il lettore di destinazione supporti il formato dei sottotitoli nella playlist e le tracce linguistiche.

Limiti tecnici e svantaggi

  • Intestazione obbligatoria: il file deve iniziare esattamente con il testo 'WEBVTT'; altrimenti i browser lo rifiutano.
  • Il separatore dei millisecondi con punto ('00:01:20.500') richiede la conversione dai file SRT legacy separati da virgola.
  • I vecchi lettori hardware non basati su browser (come i box multimediali USB economici) spesso non dispongono del supporto nativo per WebVTT.

Curiosità tecniche

  • Ogni file WebVTT valido deve iniziare con la parola esatta 'WEBVTT' sulla prima riga; qualsiasi altra cosa fa sì che i browser ignorino il file.
  • WebVTT veniva originariamente chiamato 'WebSRT' perché era stato deliberatamente progettato per sembrare quasi identico ai classici sottotitoli SRT.
  • WebVTT può essere usato anche per i capitoli video e per mostrare miniature interattive quando si passa il puntatore sulla barra di avanzamento.

Domande tecniche frequenti

A cosa serve WebVTT?

WebVTT è il formato standard Web ufficiale per aggiungere sottotitoli, didascalie, capitoli e descrizioni agli elementi HTML5 <video> sui siti web.

Come posso convertire un sottotitolo SRT in WebVTT?

Puoi convertire i file SRT in file WebVTT senza errori con un clic, usando File2File.app direttamente nel browser.

Perché i miei sottotitoli WebVTT non vengono visualizzati nel browser?

Assicurati che il file inizi con 'WEBVTT' alla prima riga, che sia seguito da una riga vuota e che il server web lo serva con l'intestazione 'Content-Type: text/vtt'.