Castreon în spatele unui CDN (push HLS)
Actualizat la 08 oct. 2026Castreon poate urca singur HLS-ul unui canal la un CDN sau într-un spațiu de stocare. Privitorii citesc apoi de la CDN, nu de la serverul dumneavoastră: serverul doar scrie, oricâți privitori ar fi, și nu trebuie deschis nimic spre el din internet.
Disponibil din Castreon 1.1.0, în planurile Pro și Enterprise.
Când vă ajută
- Aveți mulți privitori sau privitori în mai multe țări și nu vreți servere proprii de distribuție.
- Serverul de transcodare stă într-o rețea închisă (birou, centru de date fără porturi deschise) — push-ul doar trimite date în afară.
- Vreți ca o problemă de trafic să nu atingă transcodarea: CDN-ul preia toate cererile privitorilor.
Dacă aveți deja propriile servere de distribuție care citesc HLS-ul de la Castreon (pull), nu aveți nevoie de push — CDN-ul poate citi și el direct adresa HLS a canalului.
Ce destinații merg
| Destinația | Pentru ce |
|---|---|
| HTTP PUT / WebDAV | spațiul de stocare al unui CDN (acces cu un antet, de ex. AccessKey) sau un server WebDAV (utilizator + parolă) |
| S3 (compatibil) | orice stocare compatibilă S3; CDN-ul citește din bucket |
Configurarea
- Deschideți canalul → Editează → la Output-uri, Adaugă output → tipul CDN push (HLS).
- Alegeți Destinația:
- HTTP PUT / WebDAV — Adresa de scriere (adresa spațiului de stocare, cu zona), apoi Autentificare: Fără, Utilizator + parolă sau Antet (nume + valoare) — numele și valoarea le găsiți la furnizor (de ex. antetul
AccessKeycu parola zonei de stocare). - S3 (compatibil) — Endpoint S3 (fără bucket), bucket-ul, Regiune (gol =
auto), Access Key ID și Secret Access Key. Adrese path-style rămâne pornit pentru aproape toate stocările.
- HTTP PUT / WebDAV — Adresa de scriere (adresa spațiului de stocare, cu zona), apoi Autentificare: Fără, Utilizator + parolă sau Antet (nume + valoare) — numele și valoarea le găsiți la furnizor (de ex. antetul
- Calea la destinație — implicit
live/{slug}/.{slug}este identificatorul canalului,{id}id-ul lui; sub câmpul vedeți calea reală. - Adresa de redare (opțional) — adresa de la CDN pe care o dați privitorilor, cu
{slug}, de exempluhttps://cdn.domeniul-dumneavoastra.ro/live/{slug}/index.m3u8. Apare la Livrare ca CDN · HLS. - Testează legătura — Castreon scrie un fișier mic de test sub calea canalului și îl șterge. Vedeți timpul sau eroarea exactă a destinației.
- Salvează.
Parolele, valorile antetelor și cheile secrete se păstrează pe server și nu se mai afișează: după salvare câmpul arată „•••••••• salvată”. Lăsați câmpul gol ca să rămână, sau scrieți o valoare nouă. Ele nu apar nici în răspunsurile API, nici în jurnalul de audit, nici în raportul de diagnostic.
Canalul nu are nevoie de o ieșire HLS separată: dacă nu are, Castreon o adaugă singur, fiindcă push-ul urcă HLS-ul canalului.
Cum urcă
- Ordinea: întâi segmentul, apoi playlistul calității, apoi playlistul master (la mai multe calități). Un player nu vede niciodată în playlist un segment care nu există încă la CDN.
- Numele segmentelor nu se repetă niciodată, nici după repornirea canalului sau a serverului. Un CDN nu poate da din cache un segment vechi în locul unuia nou.
- Repornirea canalului apare în playlist ca discontinuitate corectă; playerele trec peste ea fără să se oprească.
- Cache: segmentele se trimit cu
Cache-Control: public, max-age=31536000, immutable, playlisturile cu un timp de cache de jumătate din durata unui segment. - Segmentele vechi se șterg de la destinație după ce au ieșit din playlist de încă o fereastră întreagă (playerele rămase în urmă le mai găsesc). Opriți Șterge segmentele vechi de la destinație dacă stocarea le șterge singură.
- La o eroare de rețea, fiecare fișier se încearcă de până la 3 ori. Erorile de acces (401, 403) nu se reîncearcă — mesajul apare imediat pe pagina canalului.
Setările de la CDN
- Cache-ul playlisturilor: la HTTP PUT, multe stocări CDN nu păstrează antetul
Cache-Controltrimis de Castreon. Puneți la CDN o regulă pentru fișierele.m3u8: 1–2 secunde în cache. Fără ea, privitorii pot primi un playlist vechi și imaginea se oprește. Segmentele se pot ține mult în cache. - La S3,
Cache-Controlse salvează ca metadate ale fiecărui obiect, iar CDN-ul din fața bucket-ului îl folosește de obicei singur. - CORS pentru playerele din browser: permiteți
GETșiHEADde la orice origine pentru.m3u8,.ts,.m4sși.mp4. - Accesul privitorilor îl hotărăște CDN-ul (de exemplu adrese semnate la CDN). Tokenul de acces al nodului nu se aplică adreselor de la CDN.
Pe pagina canalului
Cardul Push către CDN arată pentru fiecare ieșire: starea (urcă, așteaptă canalul, eroare, fără licență), destinația, adresa de redare, ultima urcare (când, ce fișier, în câte milisecunde), câte segmente și MB s-au trimis, câte s-au șters și ultima eroare.
În /metrics găsiți castreon_cdn_push_up, castreon_cdn_push_segments_total, castreon_cdn_push_bytes_total, castreon_cdn_push_errors_total și castreon_cdn_push_upload_seconds — vedeți Metrici și Grafana.
Limite
- Se urcă HLS (segmente TS sau fMP4, toate calitățile). LL-HLS nu se urcă.
- HLS criptat AES-128 nu se poate urca: cheia rămâne pe server.
- Un canal La cerere nu poate avea push: nu vede privitorii de la CDN și s-ar opri.
- Fără licența potrivită, ieșirea rămâne salvată, dar nu urcă nimic (starea fără licență).
Probleme frecvente
HTTP 401/HTTP 403: datele de acces nu sunt bune sau nu au drept de scriere pe acea zonă / bucket. La S3,SignatureDoesNotMatchînseamnă de obicei cheia secretă greșită sau un endpoint greșit.HTTP 404la test: adresa de scriere sau bucket-ul nu există.- Imaginea se oprește la privitori, deși cardul arată „urcă”: verificați regula de cache pentru
.m3u8la CDN (1–2 secunde). - Playerul din browser nu pornește, dar VLC merge: lipsește CORS la CDN.
- Ultima urcare durează mult (milisecundele de pe card cresc): destinația e lentă sau departe de server. Alegeți o zonă de stocare apropiată de server.