Sari la conținut
Castreon
Canale

Subtitrare WebVTT în HLS — din teletext, subtitrare DVB sau vorbire

Actualizat la 27 oct. 2026

Browserele, 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-ron din EPEL). Programul de instalare o face cu OCR=1 (și OCR_LANGS="ron eng deu" pentru limbi). Fără pachetul de limbă, literele cu diacritice ies fără diacritice — editorul vă avertizează.
  • Vorbire — whisper-cli din whisper.cpp și un model ggml, implicit la <data directory>/models/ggml-base.bin (alte căi: whisper și whisper_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.

Confidențialitate

Cookie-uri și stocare locală

Cookie-urile strict necesare sunt mereu active. Statisticile și marketingul folosesc servicii Google și pornesc doar dacă le accepți — până atunci nu se trimite nimic la Google. Îți poți retrage acordul oricând, aici.

Strict necesare

Fără ele nu funcționează autentificarea, formularele și limba aleasă. Nu necesită consimțământ (§ 25 alin. 2 pct. 2 TDDDG).

Mereu active
Nume Scop Durată Tip
castreon-session Păstrează sesiunea: autentificarea și limba aleasă 2 ore, prelungit la fiecare accesare Cookie
XSRF-TOKEN Protejează formularele împotriva cererilor falsificate 2 ore, prelungit la fiecare accesare Cookie
remember_web_… Doar dacă bifezi „Ține-mă minte” la autentificare Până la deconectare, max. 400 de zile Cookie
__cf_bm Cloudflare: deosebește vizitatorii de roboți, doar când traficul e verificat 30 de minute Cookie · Cloudflare
castreon:consent Ține minte alegerea ta privind cookie-urile 12 luni Memorie locală
theme Aspectul contului de client: luminos, întunecat sau sistem Până o schimbi Memorie locală

Statistici

Google Analytics 4 (Google Ireland Ltd.): ce pagini sunt vizitate, de unde vin vizitele și de pe ce tip de dispozitiv — cu identificatori pseudonimi, fără salvarea adresei IP. Ne ajută să îmbunătățim site-ul.

Nume Scop Durată Tip
_ga Google Analytics: recunoaște vizitatorul (identificator pseudonim) 13 luni Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: păstrează starea vizitei 13 luni Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): măsoară dacă vizitele venite din reclame Google ajung la test sau la un plan și permite afișarea reclamelor Castreon pe alte site-uri (remarketing).

Nume Scop Durată Tip
_gcl_au, _gcl_aw Google Ads: leagă vizita de clicul pe reclamă (conversii) 90 de zile Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing și măsurarea reclamelor, pe domeniile Google (doubleclick.net) Până la 13 luni Cookie · Google (terț)