Subtitrare WebVTT în HLS — din teletext, subtitrare DVB sau vorbire
Actualizat la 27 oct. 2026Browserele, telefoanele și televizoarele smart care redau HLS nu arată teletextul sau subtitrarea DVB din imagini. Castreon le poate transforma într-o pistă de subtitrare WebVTT în HLS-ul canalului — pista pe care privitorii o pornesc cu butonul CC al playerului — sau poate face textul din vorbire atunci când sursa nu are deloc subtitrare.
Disponibil din Castreon 3.0.0, în toate planurile.
Pornirea
Editorul canalului → Subtitrări → WebVTT în HLS (teletext, OCR, vorbire), apoi secțiunea Subtitrare WebVTT:
- Sursa textului:
- automat (teletext, apoi DVB) — pagina de subtitrare din teletext, dacă sursa o are, altfel subtitrarea DVB;
- teletext — textul se citește direct din pagina de teletext, cu diacriticele alfabetului folosit de radiodifuzor: fără întârziere, fără cost de procesor;
- subtitrare DVB (imagini, citite cu OCR) — subtitrările DVB sunt imagini; fiecare se citește cu recunoaștere de text (Tesseract) când apare;
- vorbire (recunoaștere automată) — sunetul se transcrie cu whisper.cpp în bucăți de 5–9 secunde, tăiate la pauze, ca să nu se rupă cuvintele.
- Pagina teletext — 100–899; gol = prima pagină de subtitrare din flux (des 888 sau 777).
- Limba — un cod ISO 639 (
ro,en,deu). Dă numele pistei în player și alege limba pentru OCR și pentru recunoașterea vorbirii; gol = din flux (la vorbire: detectată automat).
Subtitrările proprii ale sursei pleacă neatinse și pe ieșirile MPEG-TS (HTTP-TS, UDP, SRT…); pista WebVTT este pentru HLS.
În player
Playlistul master HLS primește o pistă de subtitrare cu numele limbii scris în limba respectivă (Română, Deutsch…). Replicile sunt sincronizate pe același ceas ca imaginea, și la HLS cu fMP4, iar pista continuă peste reporniri și schimbări de sursă.
Pe pagina canalului, cardul Subtitrare WebVTT arată starea (merge, în așteptare cu motivul — de exemplu Sursa nu are teletext. —, eroare), numărul de replici și de segmente, iar la vorbire câte bucăți au fost sărite dacă serverul nu ține pasul.
De ce are nevoie serverul
- Teletext — de nimic în plus.
- Subtitrare DVB (OCR) — Tesseract cu pachetul de limbă:
sudo apt install tesseract-ocr tesseract-ocr-ron(Rocky / RHEL:dnf install tesseract tesseract-langpack-rondin EPEL). Programul de instalare o face cuOCR=1(șiOCR_LANGS="ron eng deu"pentru limbi). Fără pachetul de limbă, literele cu diacritice ies fără diacritice — editorul vă avertizează. - Vorbire —
whisper-clidin whisper.cpp și un model ggml, implicit la<data directory>/models/ggml-base.bin(alte căi:whisperșiwhisper_modelîn/etc/castreon/castreon.json). Modelele mai mari sunt mai precise, dar cer mult mai mult procesor; începeți cu base și urmăriți procesorul folosit de canal.
Dacă lipsește ceva, editorul și pagina canalului vă spun ce anume, iar pista rămâne goală până se instalează — canalul în sine rulează normal.
Bine de știut
- Recunoașterea vorbirii rămâne cu câteva secunde în urma imaginii la marginea live: se potrivește canalelor fără subtitrare proprie, nu emisiunilor live care au nevoie de sincronizare exactă.
- Rezultatele OCR se păstrează în cache: o subtitrare care rămâne pe ecran se citește o singură dată.
- Subtitrările arse în imagine (parte din imagine) nu se citesc.