Sottotitoli WebVTT in HLS — da televideo, sottotitoli DVB o parlato
Aggiornato il 27 ott 2026Browser, telefoni e smart TV che riproducono HLS non mostrano il televideo né i sottotitoli DVB a immagine. Castreon può trasformarli in una traccia di sottotitoli WebVTT dentro l'HLS del canale — la traccia che gli spettatori attivano con il pulsante CC del player — oppure ricavare il testo dal parlato quando la sorgente non ha alcun sottotitolo.
Disponibile da Castreon 3.0.0, in tutti i piani.
Attivarli
Editor del canale → Sottotitoli → WebVTT in HLS (televideo, OCR, parlato), poi la sezione Sottotitoli WebVTT:
- Origine del testo:
- automatico (televideo, poi DVB) — la pagina dei sottotitoli del televideo se la sorgente ne ha una, altrimenti i sottotitoli DVB;
- televideo — il testo si legge direttamente dalla pagina del televideo, con gli accenti del set di caratteri di chi trasmette: nessun ritardo, nessun costo di CPU;
- sottotitoli DVB (immagini, lette con OCR) — i sottotitoli DVB sono immagini; ciascuno viene letto con il riconoscimento del testo (Tesseract) quando appare;
- parlato (riconoscimento automatico) — l'audio viene trascritto con whisper.cpp a blocchi di 5–9 secondi, tagliati nelle pause così le parole non si spezzano.
- Pagina televideo — 100–899; vuoto = la prima pagina di sottotitoli nel flusso (spesso 888 o 777).
- Lingua — un codice ISO 639 (
ro,en,deu). Dà il nome alla traccia nel player, sceglie la lingua dell'OCR e quella del riconoscimento vocale; vuoto = dal flusso (per il parlato: rilevata automaticamente).
I sottotitoli propri della sorgente escono comunque intatti anche sulle uscite MPEG-TS (HTTP-TS, UDP, SRT…); la traccia WebVTT è per l'HLS.
Nel player
La master playlist HLS riceve una traccia di sottotitoli con il nome della lingua scritto nella lingua stessa (Română, Deutsch…). Le battute sono sincronizzate sullo stesso orologio dell'immagine, anche con HLS fMP4, e la traccia continua attraverso i riavvii e i cambi di sorgente.
Nella pagina del canale, la scheda Sottotitoli WebVTT mostra lo stato (attiva, in attesa con il motivo — per esempio La sorgente non ha televideo —, errore), il numero di battute e di segmenti e, per il parlato, quanti blocchi sono stati saltati se il server non tiene il passo.
Cosa serve al server
- Televideo — nulla in più.
- Sottotitoli DVB (OCR) — Tesseract con il pacchetto della lingua:
sudo apt install tesseract-ocr tesseract-ocr-ron(Rocky / RHEL:dnf install tesseract tesseract-langpack-ronda EPEL). L'installer lo fa conOCR=1(eOCR_LANGS="ron eng deu"per le lingue). Senza il pacchetto della lingua, le lettere accentate escono senza accenti — l'editor ti avvisa. - Parlato —
whisper-clidi whisper.cpp e un modello ggml, come predefinito in<data directory>/models/ggml-base.bin(altri percorsi:whisperewhisper_modelin/etc/castreon/castreon.json). I modelli più grandi sono più precisi ma richiedono molta più CPU; parti con base e tieni d'occhio la CPU del canale.
Se manca qualcosa, l'editor e la pagina del canale dicono cosa, e la traccia resta vuota finché non viene installato — il canale stesso funziona normalmente.
Buono a sapersi
- Il riconoscimento vocale resta qualche secondo indietro rispetto all'immagine al limite live: è adatto ai canali senza sottotitoli propri, non ai programmi in diretta che richiedono tempi esatti.
- I risultati dell'OCR vengono memorizzati: un sottotitolo che resta sullo schermo si legge una volta sola.
- I sottotitoli impressi nell'immagine (parte dell'immagine) non vengono letti.