VTT naar SRT
Of plak ondertiteltekst
Wat deze conversie verandert
2 dingen vervallen of vragen om een beslissing
- Opmaak
alle opmaak (vet, cursief, kleur, contour, schaduw)
- Formaatspecifieke inhoud
inhoud die het bronformaat buiten zijn blokken bewaart (blokken die geen ondertitel zijn, koptekst, instellingen per blok, uitgecommentarieerde gebeurtenissen) — het doelformaat heeft er geen plek voor
Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.
Deze pagina zet WebVTT om naar SubRip. De blokken, de tekst en de tijden komen over; wat WebVTT daarbuiten bewaart, heeft in SRT geen plek. Dat verschil is de hele opgave: SRT is een teller, een tijdstempelregel en tekst, en niets anders.
Elke start- en eindtijd komt tot op de milliseconde over. De punt in 00:00:04.500 wordt een komma, omdat SRT dat teken daar schrijft; 00:00:04,500 benoemt hetzelfde moment. De blok-ID’s zoals intro of sign-1 worden 1, 2, 3, omdat de teller van SRT een getal moet zijn en strikte parsers een bestand met een niet-numerieke teller weigeren.
Wat verdwijnt, is de documentlaag: de WEBVTT-kop en zijn opmerking, de NOTE-, STYLE- en REGION-blokken, en de instellingen achter een tijdstempel zoals align:start of position:10%. Vooral STYLE kan de lay-out van het hele bestand bevatten, dus dat is geen losse opmerking maar iets om opnieuw op te bouwen als je speler erop leunde. Het verliesoverzicht noemt het zodra je een bestand laadt; de omzetting zelf draait in je browser.
Voorbeelden
Een typisch VTT-bestand, omgezet naar SRT
Invoer
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
Uitvoer
1
00:00:01,000 --> 00:00:04,000
Hello there.
2
00:00:04,500 --> 00:00:08,000
Second line with <i>italics</i>.
In deze uitvoer verloren: styling en formaateigen inhoud. Al het andere komt regel voor regel overeen.
Dezelfde omzetting op een rommelige invoer
Invoer
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
Uitvoer
1
00:00:01,000 --> 00:00:02,000
No header, two lines before the timecode.
Zo zien echte bestanden eruit — gemengde regeleinden, losse spaties, lege velden. Vergelijk met het nette voorbeeld hierboven om te zien wat de parser vergeeft.
Veelgestelde vragen
Veranderen de WebVTT-tijden op weg naar SRT?
Nee. De VTT-tijdstempel 00:00:01.250 en de SRT-tijdstempel 00:00:01,250 benoemen hetzelfde moment; alleen het teken tussen seconden en milliseconden verandert — punt wordt komma. Elke start en elk eind komt er ongewijzigd door.
Wat gebeurt er met de WEBVTT-kop en de NOTE-, STYLE- en REGION-blokken?
Die vallen weg. SRT kent geen kopregel en geen blokken buiten de cues, dus er is geen plek voor. Dat raakt het hardst bij STYLE, dat vaak de lay-outregels van het hele document bevat in plaats van een losse opmerking: leunde je speler daarop, dan moet die styling elders opnieuw worden opgebouwd.
Wat gebeurt er met de instellingen achter een VTT-tijdstempel bij SRT?
Ook die vallen weg, inclusief align:start en position:10%. SRT kan een cue nergens op het scherm plaatsen — er is geen veld voor. Is de positie belangrijk, kies dan ASS: daar leeft de plaatsing in overridecodes bij de tekst en reist hij mee.
Blijven mijn blok-ID’s bewaard in SRT?
Nee. WebVTT staat vrije ID’s toe zoals intro of sign-1, en de omzetter leest ze, maar de teller van SRT is naar conventie een getal. De uitvoer wordt opnieuw genummerd als 1, 2, 3, zodat ook strikte SRT-parsers het bestand accepteren.
Kan ik dit op een vertrouwelijk bestand gebruiken?
Ja. Het bestand wordt in het browsertabblad gelezen en herschreven, dus er gaat geen verzoek met je ondertitels naar buiten. De pagina blijft ook werken met het netwerk uit zodra hij geladen is.