SRT kontra VTT: vad är skillnaden, och vilken undertextfil ska du välja?
Hur de två vanligaste undertextfilerna skiljer sig rad för rad, vilka plattformar som tar emot vilken, och hur du konverterar mellan dem utan att förstöra timingen.
Uppdaterad 8 min läsningAv AutoCap-teamet
Det korta svaret
Välj SRT när du laddar upp undertexter till en videoplattform och inte vet vad den vill ha. Det är det enklare av de två formaten, och YouTube, Vimeo och LinkedIn tar alla emot det. Välj VTT (WebVTT) när undertexterna ska spelas upp på en webbsida du styr över – en HTML5-spelare, en kursplattform, din egen webbplats – eller när du behöver något SRT inte klarar, som att flytta en undertext till toppen av bilden.
Båda är ren text. Båda innehåller i grunden samma sak: en lista med textremsor, var och en med en starttid, en sluttid och orden som ska visas. Du konverterar den ena till den andra på några sekunder. Skillnaderna är små, men det är precis de detaljerna som får en uppladdning att misslyckas.
Vad en SRT-fil är
SRT står för SubRip Subtitle. Namnet kommer från SubRip, ett gratisprogram som hämtar ut undertexter och deras timing från dvd till en textfil. Varje textremsa består av fyra delar:
- Ett löpnummer som räknas upp från 1.
- En tidsrad: start- och sluttid åtskilda av
-->, var för sig skrivna somhours:minutes:seconds,milliseconds. - En eller flera rader undertext.
- En tom rad som avslutar textremsan.
Timmar, minuter och sekunder skrivs alltid med två siffror och millisekunder med tre, så tio och en halv sekund blir 00:00:10,500. Vimeos hjälpcenter beskriver samma regel på sin felsökningssida för undertextfiler.
Det är hela formatet. Vissa spelare följer några HTML-liknande taggar i SRT, som <i> för kursiv stil, men det finns ingen garanti. YouTube säger till exempel att de bara stöder enkla SRT-filer, inte läser några formateringstaggar i dem och kräver ren UTF-8-text.
Vad en VTT-fil är
VTT är kort för WebVTT, formatet Web Video Text Tracks och en W3C-specifikation. Det är formatet webbläsare använder för textning och undertexter kopplade till HTML5-video. Textremsorna ser i stort sett ut som SRT:s, och formatet lägger till det en webbspelare behöver: placering, formatering, kommentarer och talarmarkering.
En WebVTT-fil måste börja med ordet WEBVTT följt av en tom rad, och den måste vara kodad som UTF-8. Levererad från en webbplats har den MIME-typen text/vtt. Nummer är valfria – en textremsa kan ha vilken identifierare som helst, eller ingen alls. Tidsstämplar har punkt före millisekunderna, och timmarna kan utelämnas när de är noll, så 00:10.500 är giltigt.
Samma undertexter i båda formaten
Här är tre textremsor ur en kort guide, först som 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.Och samma textremsor som WebVTT, med några funktioner som SRT saknar:
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.VTT-versionen uppifrån och ner: det obligatoriska filhuvudet; en NOTE-kommentar som spelare hoppar över; ett STYLE-block som färgar allt med klassen .sound; rösttaggar som namnger talaren; en inställning (line:10%) som flyttar den andra undertexten nära bildens överkant; en textidentifierare (laugh) i stället för ett nummer; och en sista tidsstämpel där timmarna är utelämnade.
Skillnaderna som spelar roll
Filhuvudet
En VTT-fil utan WEBVTT på första raden är ogiltig, och en strikt parser avvisar den. SRT har inget filhuvud alls; filen börjar med textremsa nummer 1. Därför fungerar det inte att byta namn på captions.srt till captions.vtt: filhuvudet saknas och tidsstämplarna har fortfarande kommatecken.
Tidsstämplar
SRT skriver 00:00:04,100. VTT skriver 00:00:04.100, eller 00:04.100. Kommatecken mot punkt låter som en bagatell, men en parser som väntar sig det ena kan avvisa det andra.
Placering
I VTT står textremsans inställningar på tidsraden, efter sluttiden:
line– den lodräta placeringen, som ett radnummer eller en procentandel;position– det vågräta indraget, som en procentandel;size– bredden på textremsans ruta;align– textjustering: start, center, end, left eller right;vertical– lodrät text, för skriftsystem som behöver det;region– ett namngivet område som definieras i ettREGION-block, användbart för rullande undertexter.
Så flyttar du en undertext ur vägen för en namnskylt eller annan text i bild. Grundformatet SRT kan inte placera en textremsa alls.
Formatering
VTT stöder taggar i texten – fet, kursiv, understruken, klasspann (<c>) och ruby-anteckningar – plus STYLE-block med CSS för pseudoelementet ::cue. Hur mycket av det en spelare följer är upp till spelaren. YouTube stöder placering i VTT-filer men begränsar formateringen till fet, kursiv och understruken text. Måste undertexterna se likadana ut överallt är det enda säkra sättet att bränna in dem i videon.
Kommentarer, talare och språk
NOTE-block rymmer kommentarer – en översättarnot, ett versionsnummer, en påminnelse – som tittaren aldrig ser. Rösttaggar (<v Maya>) anger vem som talar på ett sätt som program kan läsa, och språkspann märker upp ett avsnitt på ett annat språk. SRT har inget av detta. Varje textrad i en SRT-textremsa visas för tittaren.
Undertexter, kapitel och syntolkning
På en webbsida kopplas en VTT-fil till en video med elementet <track>, och attributet kind talar om vad filen ska användas till. HTML-standarden definierar fem sorter:
subtitles– en transkription eller översättning av dialogen, för tittare som hör ljudet men inte förstår det. Det här är standardvärdet närkindsaknas.captions– dialog plus ljudeffekter, musik och annat relevant ljud, för när ljudet inte går att höra eller är svårt att uppfatta.descriptions– textbeskrivningar av det som syns i bild, tänkta att läsas upp av en talsyntes för tittare som inte kan se videon.chapters– kapitelrubriker för att navigera i videon.metadata– data för skript, visas inte för tittaren.
<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>Webbläsare förväntar sig de här filerna i WebVTT, så en webbplats som bara har SRT-filer måste konvertera dem först. Två praktiska detaljer från MDN:s dokumentation: srclang krävs när kind är subtitles, och spårfilen måste komma från samma ursprung som sidan, om inte videoelementet har attributet crossorigin.
SRT och VTT i korthet
| Egenskap | SRT | VTT (WebVTT) |
|---|---|---|
| Filändelse | .srt | .vtt |
| Ursprung | SubRip, ett program som hämtar ut undertexter från dvd | W3C:s WebVTT-specifikation |
| Filhuvud | Inget | WEBVTT på första raden (obligatoriskt) |
| Identifierare för textremsor | Löpande nummer | Valfria; vilken text som helst |
| Tidsstämpel | 00:01:04,100 | 00:01:04.100 eller 01:04.100 |
| Timmar | Skrivs alltid ut | Kan utelämnas vid noll |
| Placering | Finns inte i grundformatet | line, position, size, align, vertical, region |
| Formatering | Vissa spelare läser enkla taggar; YouTube ignorerar dem | Taggar i texten, plus CSS i STYLE-block |
| Kommentarer | Nej | NOTE-block |
| Talarmarkering | Nej | Rösttaggar (<v>) |
| Teckenkodning | Använd UTF-8 (YouTube kräver det) | UTF-8 krävs |
| HTML5 <track> | Nej | Ja |
| Bäst för | Uppladdning till videoplattformar, filer som ska vidare till andra verktyg | Webbspelare, kursplattformar, webbplatser du styr över |
Vilken plattform tar emot vad
Kraven för uppladdning ändras, så kolla plattformens hjälpsida innan du kör en stor omgång. Så här ser det ut september 2026:
- YouTube tar emot båda, jämte många andra format. SRT-filer måste vara enkla och i ren UTF-8, utan formatering; VTT-filer kan bära placering, med formatering begränsad till fet, kursiv och understruken text. Steg för steg: så laddar du upp en SRT-fil till YouTube.
- Vimeo tar emot SRT och WebVTT för textning och undertexter, rekommenderar WebVTT och vill ha teckenkodningen UTF-8.
- LinkedIns hjälpcenter beskriver hur du kopplar en SRT-fil till en video när du publicerar den från datorn.
- HTML5-video på din egen webbplats använder WebVTT via
<track>.
Korta videor i stående format är ett annat fall. På TikTok, Instagram Reels och YouTube Shorts är det ofta mer praktiskt att bränna in undertexterna i bilden, eftersom stilen följer med videon oavsett app eller sammanhang den spelas upp i. För- och nackdelar går vi igenom i öppen kontra dold textning.
Så konverterar du mellan formaten
SRT till VTT
- Lägg till
WEBVTTsom första rad, följt av en tom rad. - Byt kommatecknet före millisekunderna mot en punkt på varje tidsrad:
00:00:04,100blir00:00:04.100. - Spara filen som UTF-8 med filändelsen
.vtt.
Numren kan stanna kvar; i VTT blir de helt enkelt identifierare. Byt bara kommatecken på tidsraderna – en blind sök och ersätt ändrar även alla kommatecken i själva undertexterna. Den gratis konverteraren från SRT till VTT gör alla tre stegen åt dig.
VTT till SRT
- Ta bort filhuvudet
WEBVTToch allaNOTE-,STYLE- ochREGION-block. - Numrera textremsorna från 1 och ersätt eventuella textidentifierare.
- Skriv varje tidsstämpel fullständigt som
HH:MM:SS,mmm: lägg till00:där timmarna är utelämnade och byt punkten mot ett kommatecken. - Ta bort inställningar som
line:10%i slutet av tidsraderna. - Rensa bort röst-, klass-, språk-, ruby- och tidsstämpeltaggar. Om en rösttagg namngav en talare som tittaren behöver känna till, gör om den till en synlig etikett.
Åt det här hållet försvinner information – placeringar, stilar och talarmarkeringar – så spara VTT-originalet. Konverteraren från VTT till SRT sköter omnumreringen och skriver om tidsstämplarna. Om de konverterade undertexterna genomgående ligger för tidigt eller för sent är det ett annat problem: flytta alla textremsor på en gång med Förskjut undertexter.
Vilket ska du välja?
- Ladda upp till YouTube, Vimeo eller LinkedIn: SRT fungerar på alla tre. På YouTube och Vimeo byter du till VTT om du behöver styra placeringen.
- Din egen webbplats eller kursplattform: VTT, kopplad med
<track kind="captions">. - Lämna över undertexter till en videoredigerare eller översättare: fråga vad deras verktyg läser. Får du inget svar är SRT det säkrare valet.
- Behålla en masterkopia: exportera båda formaten från samma rättade transkription, så att en rättning hamnar i båda filerna.
Oavsett vad du väljer betyder orden och timingen mer än filformatet. En perfekt formaterad fil med ett felhört namn i textremsa 12 är ändå fel. AutoCaps SRT-generator och VTT-generator skriver båda formaten, i betalda abonnemang, utifrån transkriptionen du har rättat, med timing för varje ord – så att filerna aldrig säger emot varandra.
Frågor
Kan jag byta namn på en .srt-fil till .vtt?
Det räcker inte. En VTT-fil behöver WEBVTT på första raden och en punkt i stället för ett kommatecken före millisekunderna. Lägg till filhuvudet och rätta tidsstämplarna, eller kör filen genom en konverterare från SRT till VTT.
Föredrar YouTube SRT eller VTT?
YouTube tar emot båda. SRT är det enklaste valet. Välj VTT om du behöver flytta en undertext från standardläget: YouTube stöder placering i VTT-filer men ignorerar formateringstaggar i SRT-filer.
Vilket undertextformat stöder formatering?
WebVTT. Formatet har taggar i texten och CSS via STYLE-block, även om varje spelare själv avgör hur mycket som följs. SRT har ingen standardiserad formatering, och YouTube ignorerar taggar i SRT-filer.