Vai al contenuto
Castreon
Distribuzione

Castreon dietro un CDN (push HLS)

Aggiornato il 08 ott 2026

Castreon 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

  1. Aprite il canale → Modifica → in Uscite, Aggiungi uscita → tipo CDN push (HLS).
  2. 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 AccessKey con 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.
  3. Percorso nella destinazione — predefinito live/{slug}/. {slug} è l'identificativo del canale, {id} il suo id; sotto il campo vedete il percorso reale.
  4. Indirizzo di riproduzione (facoltativo) — l'indirizzo del CDN che date agli spettatori, con {slug}, ad esempio https://cdn.vostro-dominio.it/live/{slug}/index.m3u8. Compare in Distribuzione come CDN · HLS.
  5. 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.
  6. 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-Control inviato 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-Control viene 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 GET e HEAD da qualsiasi origine per .m3u8, .ts, .m4s e .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, SignatureDoesNotMatch di solito significa chiave segreta o endpoint sbagliati.
  • HTTP 404 durante 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 .m3u8 sul 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.

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)