Vai al contenuto
Castreon
Canali

Sottotitoli WebVTT in HLS — da televideo, sottotitoli DVB o parlato

Aggiornato il 27 ott 2026

Browser, 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-ron da EPEL). L'installer lo fa con OCR=1 (e OCR_LANGS="ron eng deu" per le lingue). Senza il pacchetto della lingua, le lettere accentate escono senza accenti — l'editor ti avvisa.
  • Parlato — whisper-cli di whisper.cpp e un modello ggml, come predefinito in <data directory>/models/ggml-base.bin (altri percorsi: whisper e whisper_model in /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.

Privacy

Cookie e memoria locale

I cookie strettamente necessari sono sempre attivi. Statistiche e marketing usano servizi Google e partono solo se li accetti — fino ad allora non viene inviato nulla a Google. Puoi revocare il consenso qui in qualsiasi momento.

Strettamente necessari

Senza di essi non funzionano l’accesso, i moduli e la lingua scelta. Non richiedono consenso (§ 25, comma 2, n. 2 TDDDG).

Sempre attivi
Nome Finalità Durata Tipo
castreon-session Mantiene la sessione: accesso e lingua scelta 2 ore, rinnovato a ogni visita Cookie
XSRF-TOKEN Protegge i moduli da richieste contraffatte 2 ore, rinnovato a ogni visita Cookie
remember_web_… Solo se selezioni „Ricordami“ all’accesso Fino alla disconnessione, max. 400 giorni Cookie
__cf_bm Cloudflare: distingue i visitatori dai bot, solo quando il traffico viene verificato 30 minuti Cookie · Cloudflare
castreon:consent Ricorda la tua scelta sui cookie 12 mesi Memoria locale
theme Aspetto dell’account cliente: chiaro, scuro o sistema Finché non lo cambi Memoria locale

Statistiche

Google Analytics 4 (Google Ireland Ltd.): quali pagine vengono visitate, da dove arrivano le visite e con quale tipo di dispositivo — con identificativi pseudonimi, senza salvare l’indirizzo IP. Ci aiuta a migliorare il sito.

Nome Finalità Durata Tipo
_ga Google Analytics: riconosce il visitatore (identificativo pseudonimo) 13 mesi Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: mantiene lo stato della visita 13 mesi Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): misura se le visite provenienti dagli annunci Google portano a una prova o a un piano e consente di mostrare annunci Castreon su altri siti (remarketing).

Nome Finalità Durata Tipo
_gcl_au, _gcl_aw Google Ads: collega la visita al clic sull’annuncio (conversioni) 90 giorni Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing e misurazione degli annunci, sui domini Google (doubleclick.net) Fino a 13 mesi Cookie · Google (terza parte)