Castreon dietro un CDN (push HLS)
Aggiornato il 08 ott 2026Castreon può caricare da solo l'HLS di un canale su un CDN o in uno spazio di archiviazione. I vostri spettatori leggono poi dal CDN, non dal vostro server: il server si limita a scrivere, qualunque sia il numero di spettatori, e non serve aprire nulla verso di esso da internet.
Disponibile da Castreon 1.1.0, nei piani Pro ed Enterprise.
Quando è utile
- Avete molti spettatori, o spettatori in più paesi, e non volete gestire server di distribuzione vostri.
- Il server di transcodifica si trova in una rete chiusa (ufficio, data center senza porte aperte) — il push invia soltanto dati verso l'esterno.
- Volete che i problemi di traffico non tocchino la transcodifica: il CDN si prende tutte le richieste degli spettatori.
Se avete già server di distribuzione vostri che leggono l'HLS da Castreon (pull), il push non vi serve — anche un CDN può leggere direttamente l'indirizzo HLS del canale.
Destinazioni supportate
| Destinazione | Per cosa |
|---|---|
| HTTP PUT / WebDAV | lo spazio di archiviazione di un CDN (accesso con un header, es. AccessKey) o un server WebDAV (utente + password) |
| S3 (compatibile) | qualsiasi archiviazione compatibile S3; il CDN legge dal bucket |
Configurazione
- Aprite il canale → Modifica → in Uscite, Aggiungi uscita → tipo CDN push (HLS).
- Scegliete la Destinazione:
- HTTP PUT / WebDAV — Indirizzo di caricamento (l'indirizzo dello spazio di archiviazione, con la zona), poi Autenticazione: Nessuna, Utente + password o Header (nome + valore) — nome e valore ve li fornisce il provider (es. l'header
AccessKeycon la password della zona di archiviazione). - S3 (compatibile) — Endpoint S3 (senza bucket), il bucket, Regione (vuoto =
auto), Access Key ID e Secret Access Key. Indirizzi path-style resta attivo per quasi tutte le archiviazioni.
- HTTP PUT / WebDAV — Indirizzo di caricamento (l'indirizzo dello spazio di archiviazione, con la zona), poi Autenticazione: Nessuna, Utente + password o Header (nome + valore) — nome e valore ve li fornisce il provider (es. l'header
- Percorso nella destinazione — predefinito
live/{slug}/.{slug}è l'identificativo del canale,{id}il suo id; sotto il campo vedete il percorso reale. - Indirizzo di riproduzione (facoltativo) — l'indirizzo del CDN che date agli spettatori, con
{slug}, ad esempiohttps://cdn.vostro-dominio.it/live/{slug}/index.m3u8. Compare in Distribuzione come CDN · HLS. - Prova la connessione — Castreon scrive un piccolo file di prova sotto il percorso del canale e lo elimina. Vedete il tempo impiegato o l'errore esatto della destinazione.
- Salva.
Password, valori degli header e chiavi segrete restano sul server e non vengono più mostrati: dopo il salvataggio il campo mostra «•••••••• salvata». Lasciate il campo vuoto per mantenerli o scrivete un nuovo valore. Non compaiono nelle risposte API, nel registro di audit né nel report diagnostico.
Il canale non ha bisogno di un'uscita HLS a parte: se non ce l'ha, Castreon la aggiunge da solo, perché il push carica l'HLS del canale.
Come carica
- Ordine: prima il segmento, poi la playlist della qualità, poi la playlist master (con più qualità). Un player non vede mai nella playlist un segmento che non è ancora sul CDN.
- I nomi dei segmenti non si ripetono mai, nemmeno dopo il riavvio del canale o del server. Un CDN non può servire dalla cache un segmento vecchio al posto di uno nuovo.
- Un riavvio del canale appare nella playlist come una discontinuità corretta; i player proseguono senza fermarsi.
- Cache: i segmenti vengono inviati con
Cache-Control: public, max-age=31536000, immutable, le playlist con un tempo di cache pari a metà della durata di un segmento. - I segmenti vecchi vengono eliminati nella destinazione quando sono fuori dalla playlist da un'altra finestra intera (i player rimasti indietro li trovano ancora). Disattivate Elimina i segmenti vecchi nella destinazione se l'archiviazione li elimina da sola.
- In caso di errore di rete ogni file viene tentato fino a 3 volte. Gli errori di accesso (401, 403) non vengono ritentati — il messaggio compare subito nella pagina del canale.
Impostazioni del CDN
- Cache delle playlist: con HTTP PUT, molte archiviazioni CDN non conservano l'header
Cache-Controlinviato da Castreon. Impostate sul CDN una regola per i file.m3u8: 1–2 secondi in cache. Senza di essa gli spettatori possono ricevere una playlist vecchia e l'immagine si ferma. I segmenti possono restare a lungo in cache. - Con S3,
Cache-Controlviene salvato come metadato di ogni oggetto e il CDN davanti al bucket di solito lo usa da solo. - CORS per i player nel browser: consentite
GETeHEADda qualsiasi origine per.m3u8,.ts,.m4se.mp4. - L'accesso degli spettatori lo decide il CDN (ad esempio indirizzi firmati sul CDN). Il token di accesso del nodo non si applica agli indirizzi del CDN.
Nella pagina del canale
La scheda Push verso CDN mostra per ogni uscita: lo stato (in caricamento, in attesa del canale, errore, senza licenza), la destinazione, l'indirizzo di riproduzione, l'ultimo caricamento (quando, quale file, in quanti millisecondi), quanti segmenti e MB sono stati inviati, quanti eliminati e l'ultimo errore.
In /metrics trovate castreon_cdn_push_up, castreon_cdn_push_segments_total, castreon_cdn_push_bytes_total, castreon_cdn_push_errors_total e castreon_cdn_push_upload_seconds — vedete Metriche e Grafana.
Limiti
- Si carica l'HLS (segmenti TS o fMP4, tutte le qualità). LL-HLS non viene caricato.
- L'HLS cifrato AES-128 non si può caricare: la chiave resta sul server.
- Un canale Su richiesta non può avere il push: non vede gli spettatori del CDN e si fermerebbe.
- Senza la licenza adatta l'uscita resta salvata ma non carica nulla (stato senza licenza).
Problemi frequenti
HTTP 401/HTTP 403: le credenziali non sono corrette o non hanno diritto di scrittura su quella zona / quel bucket. Con S3,SignatureDoesNotMatchdi solito significa chiave segreta o endpoint sbagliati.HTTP 404durante la prova: l'indirizzo di caricamento o il bucket non esiste.- L'immagine si ferma per gli spettatori anche se la scheda mostra «in caricamento»: controllate la regola di cache per
.m3u8sul CDN (1–2 secondi). - Il player nel browser non parte, ma VLC sì: manca il CORS sul CDN.
- L'ultimo caricamento dura molto (i millisecondi nella scheda crescono): la destinazione è lenta o lontana dal server. Scegliete una zona di archiviazione vicina al server.