WebVTT-Untertitel in HLS — aus Videotext, DVB-Untertiteln oder Sprache
Aktualisiert am 27 Okt 2026Browser, Telefone und Smart-TVs, die HLS abspielen, zeigen weder Videotext noch DVB-Untertitel als Bild an. Castreon kann sie in eine WebVTT-Untertitelspur im HLS des Kanals umwandeln — die Spur, die Zuschauer mit der CC-Taste des Players einschalten — oder den Text aus der Sprache erzeugen, wenn die Quelle gar keine Untertitel hat.
Verfügbar ab Castreon 3.0.0 in allen Plänen.
Einschalten
Kanaleditor → Untertitel → WebVTT in HLS (Videotext, OCR, Sprache), dann der Abschnitt WebVTT-Untertitel:
- Textquelle:
- automatisch (Videotext, dann DVB) — die Videotext-Untertitelseite, wenn die Quelle eine hat, sonst die DVB-Untertitel;
- Videotext — der Text wird direkt aus der Videotextseite gelesen, mit den Akzenten aus dem Zeichensatz des Senders: keine Verzögerung, keine CPU-Kosten;
- DVB-Untertitel (Bilder, per OCR gelesen) — DVB-Untertitel sind Bilder; jedes wird beim Erscheinen per Texterkennung (Tesseract) gelesen;
- Sprache (automatische Erkennung) — der Ton wird mit whisper.cpp in Abschnitten von 5–9 Sekunden transkribiert, an Pausen geschnitten, damit Wörter nicht zerteilt werden.
- Videotextseite — 100–899; leer = die erste Untertitelseite im Stream (oft 888 oder 777).
- Sprache — ein ISO-639-Code (
ro,en,deu). Er benennt die Spur im Player und bestimmt die Sprache für OCR und Spracherkennung; leer = aus dem Stream (bei Sprache: automatisch erkannt).
Die eigenen Untertitel der Quelle gehen außerdem unverändert auf den MPEG-TS-Ausgängen hinaus (HTTP-TS, UDP, SRT…); die WebVTT-Spur ist für HLS.
Im Player
Die HLS-Master-Playlist bekommt eine Untertitelspur, deren Sprachname in der jeweiligen Sprache selbst geschrieben ist (Română, Deutsch…). Die Einblendungen laufen auf derselben Uhr wie das Bild, auch bei fMP4-HLS, und die Spur läuft über Neustarts und Quellwechsel hinweg weiter.
Auf der Seite des Kanals zeigt die Karte WebVTT-Untertitel den Zustand (läuft, wartet mit dem Grund — zum Beispiel Die Quelle hat keinen Videotext —, Fehler), die Anzahl der Einblendungen und Segmente und bei Sprache, wie viele Abschnitte übersprungen wurden, wenn der Server nicht hinterherkommt.
Was der Server braucht
- Videotext — nichts weiter.
- DVB-Untertitel (OCR) — Tesseract mit dem Sprachpaket:
sudo apt install tesseract-ocr tesseract-ocr-ron(Rocky / RHEL:dnf install tesseract tesseract-langpack-ronaus EPEL). Das Installationsprogramm erledigt das mitOCR=1(undOCR_LANGS="ron eng deu"für die Sprachen). Ohne das Sprachpaket kommen Buchstaben mit Akzenten ohne Akzente heraus — der Editor warnt Sie. - Sprache —
whisper-cliaus whisper.cpp und ein ggml-Modell, standardmäßig unter<data directory>/models/ggml-base.bin(andere Pfade:whisperundwhisper_modelin/etc/castreon/castreon.json). Größere Modelle sind genauer, brauchen aber deutlich mehr CPU; beginnen Sie mit base und beobachten Sie die CPU des Kanals.
Fehlt etwas, sagen der Editor und die Seite des Kanals, was, und die Spur bleibt leer, bis es installiert ist — der Kanal selbst läuft normal.
Gut zu wissen
- Die Spracherkennung hängt an der Live-Kante einige Sekunden hinter dem Bild her: Sie eignet sich für Kanäle ohne eigene Untertitel, nicht für Live-Sendungen, die genaues Timing brauchen.
- OCR-Ergebnisse werden zwischengespeichert: Ein Untertitel, der auf dem Bildschirm stehen bleibt, wird nur einmal gelesen.
- Ins Bild eingebrannte Untertitel (Teil des Bildes) werden nicht gelesen.