Zum Inhalt springen
Castreon
Kanäle

WebVTT-Untertitel in HLS — aus Videotext, DVB-Untertiteln oder Sprache

Aktualisiert am 27 Okt 2026

Browser, 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-ron aus EPEL). Das Installationsprogramm erledigt das mit OCR=1 (und OCR_LANGS="ron eng deu" für die Sprachen). Ohne das Sprachpaket kommen Buchstaben mit Akzenten ohne Akzente heraus — der Editor warnt Sie.
  • Sprache — whisper-cli aus whisper.cpp und ein ggml-Modell, standardmäßig unter <data directory>/models/ggml-base.bin (andere Pfade: whisper und whisper_model in /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.

Datenschutz

Cookies & lokaler Speicher

Unbedingt erforderliche Cookies sind immer aktiv. Statistik und Marketing nutzen Dienste von Google und starten nur, wenn Sie zustimmen — bis dahin wird nichts an Google übertragen. Sie können Ihre Einwilligung hier jederzeit widerrufen.

Unbedingt erforderlich

Ohne sie funktionieren Anmeldung, Formulare und die gewählte Sprache nicht. Sie erfordern keine Einwilligung (§ 25 Abs. 2 Nr. 2 TDDDG).

Immer aktiv
Name Zweck Dauer Art
castreon-session Hält Ihre Sitzung: Anmeldung und gewählte Sprache 2 Stunden, bei jedem Aufruf verlängert Cookie
XSRF-TOKEN Schützt Formulare vor gefälschten Anfragen 2 Stunden, bei jedem Aufruf verlängert Cookie
remember_web_… Nur wenn Sie bei der Anmeldung „Angemeldet bleiben“ wählen Bis zur Abmeldung, max. 400 Tage Cookie
__cf_bm Cloudflare: unterscheidet Besucher von Bots, nur wenn der Datenverkehr geprüft wird 30 Minuten Cookie · Cloudflare
castreon:consent Speichert Ihre Cookie-Auswahl 12 Monate Lokaler Speicher
theme Darstellung des Kundenkontos: hell, dunkel oder System Bis Sie sie ändern Lokaler Speicher

Statistik

Google Analytics 4 (Google Ireland Ltd.): welche Seiten besucht werden, woher Besuche kommen und mit welchem Gerätetyp — mit pseudonymen Kennungen, ohne Speicherung der IP-Adresse. Hilft uns, die Website zu verbessern.

Name Zweck Dauer Art
_ga Google Analytics: erkennt den Besucher wieder (pseudonyme Kennung) 13 Monate Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: speichert den Sitzungsstatus 13 Monate Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): misst, ob Besuche über Google-Anzeigen zu einem Test oder Tarif führen, und ermöglicht die Anzeige von Castreon-Werbung auf anderen Websites (Remarketing).

Name Zweck Dauer Art
_gcl_au, _gcl_aw Google Ads: verknüpft den Besuch mit dem Anzeigenklick (Conversions) 90 Tage Cookie · Google Ads
IDE, test_cookie Google Ads: Remarketing und Anzeigenmessung, auf Google-Domains (doubleclick.net) Bis zu 13 Monate Cookie · Google (Drittanbieter)