SubRip (.srt) in WebVTT umwandeln
Mache eine .srt-Datei gültig für das HTML5-<track>-Element und moderne Videoplayer. WEBVTT-Kopfzeile wird hinzugefügt, Zeitcodes werden umformatiert, dafür wird nichts hochgeladen.
Deine Dateien berühren niemals einen Server. Jede Umwandlung auf dieser Seite läuft lokal in deinem Browser über die JavaScript-FileReader-API. Nichts wird hochgeladen, protokolliert oder gespeichert. Sicher für vertrauliche Zoom-/Teams-Aufnahmen, unveröffentlichtes Videomaterial und rechtliche Interviews.
So funktioniert die Umwandlung von SRT zu VTT
Wenn du schon einmal versucht hast, eine .srt-Datei direkt in ein HTML5-<track kind="captions" src="captions.srt">-Tag einzufügen, hast du wahrscheinlich festgestellt, dass Browser sie einfach ignorieren. Das <track>-Element (und das native Untertitelmenü, das jeder moderne Browser darum herum baut) versteht nur WebVTT. SubRip ist, obwohl es das am weitesten verbreitete Format unter Desktop-Playern und -Editoren ist, überhaupt kein Teil der HTML5-Spezifikation.
Die Lösung ist mechanisch, aber unnachgiebig: WebVTT verlangt eine wortgetreue WEBVTT-Zeile am Anfang der Datei, und das Millisekunden-Trennzeichen jedes Zeitcodes muss ein Punkt statt des Kommas von SRT sein (00:00:09,400 → 00:00:09.400). Wird eines dieser Details falsch gemacht, zeigt der Browser die Untertitel stillschweigend nicht an, ohne jede Fehlermeldung. Der Konverter von SubToolDesk analysiert dein SRT lokal, baut es mit einer gültigen Kopfzeile und korrigierten Zeitcodes neu auf und nummeriert die Cues sauber neu durch, alles innerhalb deines Browser-Tabs.
Schritt-für-Schritt-Anleitung
- Ziehe deine
.srt-Datei auf den Konverter oben, oder füge ihren Inhalt in das linke Feld ein. - Prüfe, dass die Format-Badge SRT erkennt.
- Klicke auf Herunterladen, um eine gültige
.vtt-Datei zu speichern, benannt wie deine ursprüngliche Datei. - Binde sie über ein
<track>-Element ein:<track kind="captions" src="/captions.vtt" srclang="en" label="English">.
Warum SRT in WebVTT umwandeln
Eine .srt-Datei synchronisiert sich in einem Desktop-Editor einwandfrei, tut aber in einem Browser nichts. Die Umwandlung in WebVTT hat fast immer einen dieser Gründe:
- Grund: Du fügst Untertitel zu einem selbst gehosteten
<video>-Element hinzu und brauchst ein Format, das das HTML5-<track>-Tag tatsächlich versteht. - Grund: Du erfüllst eine Barrierefreiheits-Anforderung (wie das Untertitel-Kriterium von WCAG 2.1) und brauchst standardkonforme Untertitel, kein Format, das Browser stillschweigend ignorieren.
- Grund: Deine Videoplattform, dein CMS oder die Screencast-Einbindung deiner Dokumentationsseite akzeptiert nur
.vtt-Uploads. - Grund: Du hast
.srt-Dateien von einer Cutterin, einem Freelancer oder einem Untertitel-Dienstleister erhalten und musst einer Entwicklerin etwas übergeben, das sofort einsetzbar ist. - Grund: Du migrierst eine Videobibliothek von einer Plattform, die SRT exportierte, zu einem eigenen Player, der auf nativer Browser-Untertitelung aufbaut.
- Grund: Du willst die Lösung, ohne ffmpeg zu installieren oder ein einmaliges Konvertierungsskript für eine einzelne Datei zu schreiben.
Vorher und nachher: ein echtes Beispiel
Eine kurze SRT-Datei mit drei Cues, inklusive Komma-Zeitcodes und fortlaufender Nummerierung, umgewandelt mit Sprecherkennungen entfernen und Formatierungs-Tags entfernen beide deaktiviert (der Standardzustand auf dieser Seite, da für ein gültiges WebVTT nichts entfernt werden muss):
1 00:00:01,200 --> 00:00:04,000 Willkommen zurück, heute geht es um die Zahlen für das dritte Quartal. 2 00:00:04,300 --> 00:00:07,900 Danke für die Einladung. Steigen wir gleich ein. 3 00:00:08,100 --> 00:00:11,500 Der Umsatz ist im Jahresvergleich um acht Prozent gestiegen.
WEBVTT 1 00:00:01.200 --> 00:00:04.000 Willkommen zurück, heute geht es um die Zahlen für das dritte Quartal. 2 00:00:04.300 --> 00:00:07.900 Danke für die Einladung. Steigen wir gleich ein. 3 00:00:08.100 --> 00:00:11.500 Der Umsatz ist im Jahresvergleich um acht Prozent gestiegen.
Der Cue-Text, das Timing und sogar die Cue-Nummern bleiben unverändert. Nur die WEBVTT-Kopfzeile wird hinzugefügt, und jedes Komma vor Millisekunden wird zu einem Punkt — genau die zwei Änderungen, die ein Browser braucht, um die Datei zu akzeptieren.
Vorher und nachher
SRT-Eingabe: 1 00:00:09,400 --> 00:00:12,900 Der Umsatz ist um acht Prozent gestiegen. VTT-Ausgabe: WEBVTT 1 00:00:09.400 --> 00:00:12.900 Der Umsatz ist um acht Prozent gestiegen.
Warum das für Webentwicklerinnen und -entwickler wichtig ist
Barrierefreies Video mit Untertiteln ist für die meisten öffentlich zugänglichen Seiten sowohl eine Nutzbarkeits- als auch eine Compliance-Anforderung (das Erfolgskriterium 1.2.2 von WCAG 2.1 verlangt Untertitel für vorab aufgezeichnete Medien), und das <track>-Element ist der standardbasierte Weg, sie ohne eine Videoplattform von Drittanbietern bereitzustellen. Wenn deine Schnitt-Pipeline (oder ein Freelancer) dir nur .srt-Dateien liefert, bringt dich die Umwandlung hier in Sekunden zu einem sofort einsetzbaren WebVTT-Asset, ohne ffmpeg zu installieren oder ein Konvertierungsskript zu schreiben.
Verarbeitet bei dir, nicht auf unseren Servern
Da dies eine reine Textumformatierung ist, wird niemals eine Mediendatei berührt oder hochgeladen, sondern nur der Untertiteltext, und das ausschließlich innerhalb deines eigenen Browser-Tabs. Das ist für ein internes Produkt-Demo-Video genauso wichtig wie für eine öffentliche Marketingseite.
Das Ergebnis in einem <track>-Element verwenden
Sobald du die umgewandelte Datei heruntergeladen hast, füge sie mit einem untergeordneten <track>-Element zu deinem <video>-Markup hinzu:
<video controls>
<source src="demo.mp4" type="video/mp4">
<track
kind="captions"
src="/captions.vtt"
srclang="en"
label="English"
default>
</video>Das Attribut default weist den Browser an, diese Spur automatisch zu aktivieren; lasse es weg, wenn du mehrere Sprachspuren anbietest und die zuschauende Person wählen lassen möchtest. Browser prüfen die WEBVTT-Kopfzeile strikt: eine fehlende oder falsch geschriebene Kopfzeile ist der mit Abstand häufigste Grund, warum Untertitel stillschweigend nicht erscheinen, selbst wenn der Rest der Datei korrekt aufgebaut ist.
Für wen dieser Konverter gemacht ist
Front-End- und Full-Stack-Entwicklerinnen und -Entwickler, die Untertitel zu einem selbst gehosteten Videoplayer hinzufügen, sind die Hauptzielgruppe, aber auch Videoproduktionsteams, die Assets an eine Entwicklerin übergeben, nutzen es, um etwas zu liefern, das garantiert funktioniert, statt die Formatumwandlung als offene Aufgabe auf dem Tisch einer anderen Person liegen zu lassen. Es ist ebenso nützlich für Open-Source-Dokumentationsseiten, die Screencasts einbetten, interne Tool-Teams, die Schulungsvideos für die Barrierefreiheits-Compliance untertiteln, und für alle, die eine Videobibliothek von einer Plattform, die SRT exportierte, zu einem eigenen Player migrieren, der native Browser-Untertitelung erwartet.
Was dieser Konverter erhält und was er ändert
Erhalten bleibt:
- Jedes Wort des Dialogtexts, exakt wie geschrieben, einschließlich eventueller Tippfehler in der Quelldatei.
- Millisekundengenaues Timing für jeden Cue, exakt übernommen.
- Ein Block pro Cue, in der ursprünglichen Reihenfolge, wobei die Cue-Nummern fortlaufend ab 1 neu vergeben werden.
- Alle Sprecherpräfixe oder Inline-Tags im Cue-Text, sofern du nicht Sprecherkennungen entfernen oder Formatierungs-Tags entfernen aktivierst.
Geändert oder entfernt wird:
- Das Komma vor den Millisekunden wird in jedem Zeitcode zu einem Punkt, da WebVTT
00:00:04.000verlangt, nicht das00:00:04,000von SRT. - Eine
WEBVTT-Kopfzeile wird am Anfang der Datei hinzugefügt, da WebVTT sie verlangt und SRT keine hat. - Reine-Text-Sprecherpräfixe wie
SPRECHER 1:, aber nur, wenn Sprecherkennungen entfernen aktiviert ist; standardmäßig bleiben sie erhalten. - Formatierungs-Tags wie
<i>oder<b>, aber nur, wenn Formatierungs-Tags entfernen aktiviert ist; standardmäßig bleiben sie erhalten.
Häufige Probleme und wie man sie löst
- Der Browser zeigt nach der Umwandlung weiterhin keine Untertitel an: prüfe, ob die Format-Badge über dem Konverter vor der Umwandlung tatsächlich SRT anzeigte; ein stark abgeschnittener Einfügevorgang kann die Cue-Erkennung stören und eine leere oder fehlerhafte Ausgabe erzeugen.
<i>- oder<b>-Tags erscheinen in den Untertiteln weiterhin als wörtlicher Text: das ist erwartet, Formatierungs-Tags entfernen ist auf dieser Seite standardmäßig deaktiviert, da WebVTT diese Tags nativ unterstützt; aktiviere es nur, wenn du stattdessen reinen Text möchtest.- Sprechernamen wie
SPRECHER 1:werden unverändert in die VTT-Ausgabe übernommen: aktiviere Sprecherkennungen entfernen, wenn sie nicht erscheinen sollen; standardmäßig werden sie beibehalten, da dieser Konverter davon ausgeht, dass du eine originalgetreue strukturelle Umformatierung willst, keine inhaltliche Bearbeitung. - Die Ausgabe zeigt vor den Millisekunden weiterhin ein Komma statt eines Punkts: prüfe, ob du wirklich die
.vtt-Ausgabe heruntergeladen hast und nicht eine Kopie der ursprünglichen.srt-Datei; die Format-Badge und die Ausgabebeschriftung über dem Konverter zeigen dir, welche Datei du gerade siehst. - Untertitel erscheinen nicht, obwohl die Datei korrekt aussieht: öffne die
.vtt-Datei in einem Texteditor und prüfe, ob die allererste Zeile exaktWEBVTTlautet, ohne irgendetwas davor, nicht einmal eine Byte-Order-Mark oder eine Leerzeile; Browser lehnen die Datei stillschweigend ab, wenn diese Zeile nicht an erster Stelle steht. - Akzentbuchstaben oder nicht-englischer Text erscheinen in der umgewandelten Datei als verstümmelte Zeichen wie
é: die Quell-.srtwurde nicht als UTF-8 gespeichert; exportiere oder speichere sie vor der Umwandlung erneut als UTF-8, da WebVTT wie SRT UTF-8-Text voraussetzt.
Was sich bei der Umwandlung nicht ändert
Dialogtext und millisekundengenaues Timing werden exakt wie geschrieben übernommen. Das ist eine strukturelle Umformatierung, keine neue Transkription. Wenn dein ursprüngliches SRT Tippfehler enthält, stehen diese Tippfehler auch in der VTT-Ausgabe; dieses Werkzeug korrigiert die Formatkonformität, nicht die inhaltliche Richtigkeit. Wenn du beim Umwandeln auch Sprecherkennungen oder Inline-Formatierungs-Tags bereinigen möchtest, wirken die Schalter Sprecherkennungen entfernen und Formatierungs-Tags entfernen oben auf den Cue-Text, bevor er in WebVTT-Syntax umgeschrieben wird, sodass du die Formatumwandlung und die inhaltliche Bereinigung in einem einzigen Durchgang kombinieren kannst, statt zwei separate Werkzeuge auszuführen.
Häufig gestellte Fragen
Warum lehnt mein Browser eine .srt-Datei in einem <track>-Element ab?
Das HTML5-<track>-Element verlangt speziell WebVTT. Browser analysieren SRT nicht nativ für die Videountertitelung. Die Umwandlung in .vtt ist notwendig, um die native Untertitel-API überhaupt nutzen zu können.
Was genau fügt der Konverter hinzu, um gültiges WebVTT zu erzeugen?
Er stellt die erforderliche WEBVTT-Kopfzeile voran, wechselt das Millisekunden-Trennzeichen jedes Zeitcodes von Komma zu Punkt und nummeriert die Cue-Kennungen neu: die drei Dinge, die SRT fehlen, damit ein Browser die Datei akzeptiert.
Kann ich nach der Umwandlung Cue-Positionierung oder Styling hinzufügen?
Ja, dieses Werkzeug erzeugt eine saubere, standardkonforme WebVTT-Textausgabe, die du anschließend von Hand weiter bearbeiten kannst, um Cue-Einstellungen (wie align oder position) oder <v>-Sprecher-Tags hinzuzufügen, da die Grundstruktur bereits gültig ist.
Synchronisieren sich die Untertitel nach der Umwandlung weiterhin korrekt?
Ja, das Timing bleibt millisekundengenau erhalten; nur das Trennzeichen und die Kopfzeile ändern sich, niemals die eigentlichen Zeitstempelwerte.
Funktioniert das mit Untertiteln, die aus Premiere oder DaVinci Resolve exportiert wurden?
Ja. Beide exportieren Standard-SRT, das dieser Parser nativ liest, unabhängig davon, welche Software die Datei erzeugt hat.
Unterstützen manche Browser .srt tatsächlich direkt, obwohl es nicht spezifikationskonform ist?
Chrome und Firefox haben über die TextTrack-API eine nicht standardisierte Unterstützung für SRT hinzugefügt, aber sie ist uneinheitlich und über Browser und Versionen hinweg nicht garantiert. Die HTML5-Spezifikation verlangt ausschließlich WebVTT, daher ist die Umwandlung in .vtt der einzige Weg, um sicherzustellen, dass Untertitel überall angezeigt werden.