SRT vs VTT: wat is het verschil en welk ondertitelbestand gebruik je?

Hoe de twee meest gebruikte ondertitelbestanden regel voor regel verschillen, welke platforms welk formaat accepteren en hoe je ze converteert zonder dat de timing verschuift.

Bijgewerkt op 8 min leestijdDoor het AutoCap-team

Het korte antwoord

Gebruik SRT als je ondertiteling uploadt naar een videoplatform en niet zeker weet wat het verwacht. Het is de eenvoudigste van de twee, en YouTube, Vimeo en LinkedIn accepteren het allemaal. Gebruik VTT (WebVTT) als de ondertiteling wordt afgespeeld op een webpagina die je zelf beheert — een HTML5-speler, een cursusplatform, je eigen site — of als je iets nodig hebt wat SRT niet kan uitdrukken, zoals een ondertitel bovenin het beeld zetten.

Het zijn allebei platte tekstbestanden. Allebei bevatten ze in de basis hetzelfde: een lijst ondertitels, elk met een begintijd, een eindtijd en de woorden die in beeld komen. Je converteert het ene in een paar seconden naar het andere. De verschillen zijn klein, maar het zijn precies de details waardoor een upload mislukt.

Wat een SRT-bestand is

SRT staat voor SubRip Subtitle. De naam komt van SubRip, gratis software die ondertiteling met de bijbehorende timing van dvd’s naar een tekstbestand haalt. Elke ondertitel bestaat uit vier delen:

  1. Een volgnummer, oplopend vanaf 1.
  2. Een tijdcoderegel: de begin- en eindtijd, gescheiden door -->, elk geschreven als uren:minuten:seconden,milliseconden.
  3. Een of meer regels ondertiteltekst.
  4. Een lege regel die de ondertitel afsluit.

Uren, minuten en seconden hebben altijd twee cijfers en milliseconden altijd drie, dus tienenhalve seconde is 00:00:10,500. Het Helpcentrum van Vimeo noemt dezelfde regel op de pagina over het oplossen van problemen met ondertitelbestanden.

Dat is het hele formaat. Sommige spelers begrijpen een paar HTML-achtige tags in SRT, zoals <i> voor cursief, maar daar is geen garantie voor. YouTube zegt bijvoorbeeld dat het alleen eenvoudige SRT-bestanden ondersteunt, er geen opmaakcode in herkent en platte UTF-8-tekst vereist.

Wat een VTT-bestand is

VTT is de afkorting van WebVTT, het Web Video Text Tracks-formaat, een W3C-specificatie. Browsers gebruiken dit formaat voor ondertiteling bij HTML5-video. De ondertitels lijken sterk op die van SRT, en het formaat voegt toe wat een webspeler nodig heeft: positionering, opmaak, opmerkingen en sprekeraanduiding.

Een WebVTT-bestand moet beginnen met het woord WEBVTT, gevolgd door een lege regel, en moet als UTF-8 gecodeerd zijn. Wordt het vanaf een website geserveerd, dan is het MIME-type text/vtt. Ondertitelnummers zijn optioneel — een ondertitel kan elke willekeurige ID hebben, of geen. Tijdcodes zetten een punt vóór de milliseconden, en de uren mogen weg als ze nul zijn, dus 00:10.500 is geldig.

Dezelfde ondertitels in beide formaten

Hier zijn drie ondertitels uit een korte tutorial, eerst als SRT:

lighting-tutorial.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.

En dezelfde ondertitels als WebVTT, met een paar functies die SRT niet heeft:

lighting-tutorial.vtt
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.

De VTT-versie van boven naar beneden: de verplichte header; een NOTE-opmerking die spelers negeren; een STYLE-blok dat alles met de tag .sound een kleur geeft; voice-tags met de naam van de spreker; een ondertitelinstelling (line:10%) die de tweede ondertitel naar de bovenkant van het beeld verplaatst; een tekst-ID (laugh) in plaats van een nummer; en een laatste tijdcode zonder uren.

De verschillen die ertoe doen

De header

Een VTT-bestand zonder WEBVTT op de eerste regel is ongeldig, en een strikte parser weigert het. SRT heeft helemaal geen header; het bestand begint met ondertitelnummer 1. Daarom werkt het niet om captions.srt te hernoemen naar captions.vtt: de header ontbreekt en de tijdcodes gebruiken nog steeds komma’s.

Tijdcodes

SRT schrijft 00:00:04,100. VTT schrijft 00:00:04.100, of 00:04.100. Komma of punt lijkt een detail, maar een parser die het een verwacht, kan het ander weigeren.

Positionering

Ondertitelinstellingen in VTT staan op de tijdcoderegel, na de eindtijd:

  • line — de verticale positie, als regelnummer of percentage;
  • position — de horizontale inspringing, als percentage;
  • size — de breedte van het ondertitelvak;
  • align — tekstuitlijning: start, center, end, left of right;
  • vertical — verticale tekst, voor schriftsystemen die dat nodig hebben;
  • region — een benoemd gebied dat in een REGION-blok is gedefinieerd, handig voor scrollende ondertiteling.

Zo til je een ondertitel weg van een naambalk of andere tekst in beeld. Basis-SRT kan een ondertitel op geen enkele manier positioneren.

Opmaak

VTT ondersteunt inline tags — vet, cursief, onderstreept, class-tags (<c>) en ruby-annotaties — plus STYLE-blokken met CSS voor het pseudo-element ::cue. Hoeveel daarvan een speler overneemt, bepaalt de speler zelf. YouTube ondersteunt positionering in VTT-bestanden, maar beperkt de opmaak tot vet, cursief en onderstreept. Moet ondertiteling er overal precies zo uitzien, dan is de enige betrouwbare methode om ze in de video te branden.

Opmerkingen, sprekers en talen

In NOTE-blokken staan opmerkingen — een notitie van de vertaler, een versienummer, een geheugensteuntje — die kijkers nooit zien. Voice-tags (<v Maya>) leggen vast wie er spreekt, op een manier die software kan lezen, en met taaltags markeer je een passage in een andere taal. SRT kent dit allemaal niet. Elke tekstregel in een SRT-ondertitel wordt aan de kijker getoond.

Ondertiteling, hoofdstukken en beschrijvingen

Op een webpagina koppel je een VTT-bestand aan een video met het element <track>, en het attribuut kind geeft aan waarvoor het bestand dient. De HTML-standaard definieert vijf soorten:

  • subtitles — een transcriptie of vertaling van de dialoog, voor kijkers die de audio wel horen maar niet begrijpen. Dit is de standaardwaarde als kind ontbreekt.
  • captions — dialoog plus geluidseffecten, muziek en andere relevante audio, voor als het geluid niet beschikbaar of slecht te horen is.
  • descriptions — tekstbeschrijvingen van wat er in beeld is, bedoeld om door een spraaksynthesizer te worden uitgesproken voor kijkers die de video niet kunnen zien.
  • chapters — hoofdstuktitels om door de video te navigeren.
  • metadata — gegevens voor scripts, niet zichtbaar voor kijkers.
player.html
<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>

Browsers verwachten deze bestanden in WebVTT, dus een site met alleen SRT-bestanden moet ze eerst converteren. Twee praktische details uit de documentatie van MDN: srclang is verplicht als de soort subtitles is, en het trackbestand moet van dezelfde origin komen als de pagina, tenzij het video-element een attribuut crossorigin heeft.

SRT vs VTT in één oogopslag

SRT en VTT vergeleken
KenmerkSRTVTT (WebVTT)
Bestandsextensie.srt.vtt
HerkomstSubRip, een programma om ondertiteling van dvd’s te halenW3C-specificatie WebVTT
HeaderGeenWEBVTT op de eerste regel (verplicht)
Ondertitel-ID’sOpeenvolgende nummersOptioneel; willekeurige tekst
Tijdcode00:01:04,10000:01:04.100 of 01:04.100
UrenAltijd uitgeschrevenOptioneel als ze nul zijn
PositioneringNiet in het basisformaatline, position, size, align, vertical, region
OpmaakSommige spelers lezen eenvoudige tags; YouTube negeert zeInline tags, plus CSS in STYLE-blokken
OpmerkingenNeeNOTE-blokken
SprekeraanduidingNeeVoice-tags met <v>
CoderingGebruik UTF-8 (verplicht op YouTube)UTF-8 verplicht
HTML5 <track>NeeJa
Ideaal voorUploads naar videoplatforms, bestanden doorgeven aan andere toolsWebspelers, cursusplatforms, sites die je zelf beheert

Welke platforms welk formaat accepteren

Uploadvereisten veranderen, dus kijk op de helppagina van het platform voordat je een grote reeks uploadt. De stand van zaken in september 2026:

  • YouTube accepteert allebei, naast veel andere formaten. SRT-bestanden moeten eenvoudig zijn en uit platte UTF-8-tekst bestaan, zonder opmaak; VTT-bestanden kunnen positionering bevatten, met opmaak beperkt tot vet, cursief en onderstreept. Stap voor stap: een SRT-bestand uploaden naar YouTube.
  • Vimeo accepteert SRT en WebVTT voor ondertiteling, raadt WebVTT aan en vraagt om UTF-8-codering.
  • Het Helpcentrum van LinkedIn beschrijft hoe je een SRT-bestand toevoegt als je een video post vanaf de desktopsite.
  • HTML5-video op je eigen site gebruikt WebVTT via <track>.

Verticale korte video’s zijn een ander verhaal. Op TikTok, Instagram Reels en YouTube Shorts is ondertiteling in het beeld branden vaak de praktischere keuze, omdat de opmaak dan meereist met de video, in welke app of met welke instellingen die ook wordt afgespeeld. De afwegingen staan in open vs closed captions.

Zo converteer je het ene naar het andere

SRT naar VTT

  1. Zet WEBVTT op de eerste regel, gevolgd door een lege regel.
  2. Verander op elke tijdcoderegel de komma vóór de milliseconden in een punt: 00:00:04,100 wordt 00:00:04.100.
  3. Sla het bestand op als UTF-8 met de extensie .vtt.

De ondertitelnummers mogen blijven staan; in VTT worden het gewoon ID’s. Vervang alleen komma’s op de tijdcoderegels — een blinde zoek-en-vervangactie verandert ook elke komma in de ondertiteltekst zelf. De gratis SRT-naar-VTT-converter doet alle drie de stappen voor je.

VTT naar SRT

  1. Verwijder de WEBVTT-header en alle NOTE-, STYLE- en REGION-blokken.
  2. Nummer de ondertitels vanaf 1 en vervang eventuele tekst-ID’s.
  3. Schrijf elke tijdcode volledig uit als HH:MM:SS,mmm: voeg 00: toe waar de uren waren weggelaten, en verander de punt in een komma.
  4. Verwijder ondertitelinstellingen zoals line:10% aan het eind van de tijdcoderegels.
  5. Verwijder voice-, class-, taal-, ruby- en tijdcodetags. Noemde een voice-tag een spreker die kijkers moeten kennen, zet die dan om in een zichtbaar label.

In deze richting gaat informatie verloren — posities, opmaak en sprekeraanduiding — dus bewaar de originele VTT. De VTT-naar-SRT-converter regelt het hernummeren en het herschrijven van de tijdcodes. Komt de geconverteerde ondertiteling steeds te vroeg of te laat, dan is dat een ander probleem: verschuif alle ondertitels tegelijk met de tool Ondertiteling verschuiven.

Welke moet je gebruiken?

  • Uploaden naar YouTube, Vimeo of LinkedIn: SRT werkt op alle drie. Kies op YouTube of Vimeo voor VTT als je positionering nodig hebt.
  • Je eigen website of cursusspeler: VTT, gekoppeld met <track kind="captions">.
  • Ondertiteling doorgeven aan een editor of vertaler: vraag wat hun tools kunnen inlezen. Zeggen ze niets, dan is SRT de veiligste keuze.
  • Een masterversie bewaren: exporteer allebei vanuit hetzelfde verbeterde transcript, zodat een correctie in beide bestanden terechtkomt.

Welke je ook kiest, de woorden en de timing zijn belangrijker dan het formaat. Een perfect opgemaakt bestand met een verkeerd verstane naam in ondertitel 12 is nog steeds fout. De SRT-generator en VTT-generator van AutoCap schrijven bij betaalde abonnementen beide formaten vanuit het transcript dat jij hebt verbeterd, met timing voor elk woord — zodat de twee bestanden elkaar nooit tegenspreken.

Vragen

Kan ik een .srt-bestand hernoemen naar .vtt?

Niet zomaar. Een VTT-bestand heeft WEBVTT op de eerste regel nodig en een punt in plaats van een komma vóór de milliseconden. Voeg de header toe en pas de tijdcodes aan, of haal het bestand door een SRT-naar-VTT-converter.

Heeft YouTube liever SRT of VTT?

YouTube accepteert allebei. SRT is de eenvoudigste keuze. Gebruik VTT als je een ondertitel ergens anders dan op de standaardplek wilt zetten: YouTube ondersteunt positionering in VTT-bestanden, maar negeert opmaakcode in SRT-bestanden.

Welk ondertitelformaat ondersteunt opmaak?

WebVTT. Dat kent inline tags en CSS via STYLE-blokken, al bepaalt elke speler zelf hoeveel daarvan hij overneemt. SRT heeft geen standaardopmaak, en YouTube negeert opmaakcode in SRT-bestanden.

Ondertitel je volgende video automatisch.

Upload een MP4 of MOV, krijg ondertiteling met timing voor elk woord, verbeter wat het transcript miste en exporteer een video met ondertiteling. Voor het gratis abonnement heb je geen creditcard nodig.