SRT-ondertitels synchroniseren: tijdscodes verschuiven en converteren naar WebVTT
Inhoudsopgave
Inhoudsopgave
- 1. Waarom lopen ondertitels uit de pas met gesproken audio?
- 2. Formaatvergelijking: SubRip (.SRT) versus WebVTT (.VTT)
- 3. Wiskundige tijdverschuiving: milliseconde-offset berekeningen
- 4. HTML5 <video> en <track> compatibiliteit in browsers
- 5. Stapsgewijze handleiding voor GoToolstack Ondertitel Editor
1. Waarom lopen ondertitels uit de pas met gesproken audio?
Niets is storender voor de kijker dan ondertiteling die te vroeg verschijnt en de clou verraadt, of juist seconden achterloopt op de gesproken dialoog. Dergelijke synchronisatiefouten ontstaan meestal door verschillen in beeldsnelheid (bijvoorbeeld een film opgenomen in 24 fps geconverteerd naar 25 fps PAL of 29,97 fps NTSC), een reclameblok dat uit het videobestand is geknipt, of een gewijzigde leader aan het begin van de opname.
In veel gevallen is de afstand tussen de gesproken tekst en de ondertiteling constant – bijvoorbeeld een vaste vertraging van exact +500 milliseconden over de gehele tijdsduur van de video. Door een lineaire offset toe te passen op alle cues tegelijk, kan het hele bestand in één handeling perfect synchroon worden gezet.
2. Formaatvergelijking: SubRip (.SRT) versus WebVTT (.VTT)
Hoewel beide formaten eenvoudige tekstbestanden zijn, hanteren ze subtiele maar strikte syntaxisregels. Een klein leestekenverschil kan ertoe leiden dat een moderne browser de ondertiteling weigert weer te geven:
| Kenmerk | SubRip (.SRT) | WebVTT (.VTT) |
|---|---|---|
| Bestandshandtekening | Geen (begint direct met indexnummer 1) |
Verplichte headerregel: WEBVTT bovenaan |
| Decimaalscheidingsteken | Komma (bijv. 00:00:01,000) |
Punt (bijv. 00:00:01.000) |
| HTML5 <track> ondersteuning | Niet ondersteund (wordt genegeerd door browsers) | Officiële W3C webstandaard |
| Opmaak & Styling | Beperkte HTML-tags (<b>, <i>, <font>) |
Volledige CSS-styling, cue-posities en spraakidentificatie |
3. Wiskundige tijdverschuiving: milliseconde-offset berekeningen
Bij het verschuiven van tijdscodes wordt elk tijdstempel (UU:MM:SS,mmm) eerst omgerekend naar een absoluut aantal milliseconden vanaf het begin van de video:
Totale milliseconden = (Uur * 3.600.000) + (Minuten * 60.000) + (Seconden * 1.000) + MillisecondenVervolgens wordt de offset opgeteld of afgetrokken:
Nieuwe Tijd = Math.max(0, Oude Tijd + Offset)De beveiligingsfunctie Math.max(0, ...) is essentieel: als een ondertitel naar voren wordt geschoven met bijvoorbeeld -1.500 ms, maar oorspronkelijk begon op 00:00:01,000 (1.000 ms), mag het tijdstempel nooit negatief worden, omdat dit de videospeler direct zou laten crashen.
4. HTML5 <video> en <track> compatibiliteit in browsers
Wilt u ondertitels insluiten op uw eigen website via het standaard HTML5 <video>-element? Browsers accepteren uitsluitend het WebVTT-formaat. Gebruik de volgende standaardopmaak:
<video controls width="800">
<source src="/video/presentatie.mp4" type="video/mp4">
<track kind="subtitles" src="/subtitles/sample_subtitles_nl_shifted.vtt" srclang="nl" label="Nederlands" default>
</video>5. Stapsgewijze handleiding voor GoToolstack Ondertitel Editor
- Bestand inladen: Ga naar de Ondertitel Editor en upload uw
.srtof.vttbestand. - Tijdverschuiving instellen: Typ de gewenste offset in milliseconden in (bijvoorbeeld
+500om de tekst een halve seconde later te tonen of-500om deze eerder te laten verschijnen). - Cues inspecteren: Controleer de bijgewerkte tijdscodes en tekstregels in de interactieve editor.
- Converteren en downloaden: Klik op "Exporteer als WebVTT" voor modern webgebruik of "Download SRT" voor offline videospelers zoals VLC.