Arhivă, catch-up și timeshift
Actualizat la 07 oct. 2026Castreon poate păstra pe disc tot ce a difuzat un canal în ultimele zile. Abonații dumneavoastră văd apoi în playerul IPTV emisiunile trecute (catch-up), pornesc emisiunea în curs de la început (start-over) sau urmăresc canalul cu o întârziere aleasă (timeshift).
Disponibil din Castreon 1.0.8, în planurile Pro (până la 7 zile pe canal) și Enterprise (fără limită de zile — limita este discul).
Cum funcționează
Canalul scrie oricum ieșirea HLS în segmente de câteva secunde. Arhiva păstrează aceste segmente pe disc înainte să iasă din fereastra live — fără nicio transcodare în plus și fără un proces nou. Fiecare segment se păstrează după ora la care a fost difuzat, așa că arhiva trece fără probleme peste repornirile canalului sau ale serverului.
Pe același disc, segmentul nu se copiază deloc (legătură fixă, hard link); dacă HLS-ul live e în memorie (tmpfs), segmentul se copiază pe disc.
Pornirea pe un canal
- Deschideți canalul → Editează.
- La Arhivă (catch-up), bifați Păstrează arhiva și alegeți câte zile.
- Salvează.
Înregistrarea începe în câteva secunde. Canalul are nevoie de:
- o ieșire HLS — poate sta lângă celelalte ieșiri; un canal fără nicio ieșire configurată o are implicit;
- segmente TS — la ieșirea HLS, containerul TS sau automat (automat alege fMP4 doar când profilul codează în HEVC sau AV1);
- HLS necriptat — arhiva nu păstrează HLS criptat AES-128;
- să ruleze permanent, nu La cerere — un canal la cerere se oprește fără privitori și arhiva ar avea goluri.
Panoul vă spune înainte de salvare dacă lipsește ceva.
Dacă opriți arhiva pe un canal sau ștergeți canalul, ce s-a înregistrat pentru el se șterge de pe disc în cel mult un minut.
Spațiul pe disc
Arhiva ocupă cât debitul canalului înmulțit cu timpul păstrat:
| Debitul canalului | O zi | 7 zile |
|---|---|---|
| 2 Mbit/s | ≈ 22 GB | ≈ 151 GB |
| 5 Mbit/s | ≈ 54 GB | ≈ 378 GB |
| 8 Mbit/s | ≈ 86 GB | ≈ 605 GB |
La un canal cu mai multe calități (ABR) se păstrează toate calitățile, deci se adună debitele lor.
În Setări → Arhivă găsiți:
- Directorul arhivei — gol înseamnă
archiveîn directorul de date al nodului. Recomandăm un disc separat și mare (nu tmpfs). Un director nou se creează și se verifică la salvare. Arhiva deja înregistrată nu se mută: rămâne în directorul vechi. - Spațiu minim liber (%) — implicit 10 %. Când discul coboară sub prag, nodul șterge cele mai vechi ore, de la orice canal, până se eliberează locul. Înregistrarea nu se oprește niciodată pentru că s-a umplut discul.
- discul (liber / total), cât ocupă arhiva, planul și, pentru fiecare canal, zilele, spațiul, de când are arhivă și dacă înregistrează acum.
Arhiva se șterge pe ore întregi: după zilele fiecărui canal și după pragul de spațiu liber.
În playerele IPTV
În player nu trebuie configurat nimic. Exportă M3U marchează canalele cu arhivă:
#EXTINF:-1 tvg-id="canal-1" catchup="default" catchup-days="7" catchup-source="http://…/live/canal-1/index-{utc}-{duration}.m3u8",Canal 1
TiviMate, OTT Navigator, Kodi (IPTV Simple), Televizo și celelalte playere care citesc catch-up-ul din lista M3U arată arhiva la canal, iar emisiunile trecute din program se pot reda. Pentru emisiuni, playerul folosește programul TV — la canalele DVB vine chiar din mux, vedeți Programul TV (EPG) din DVB. Lista cere singură programul pe zilele arhivei (cel mult 8). Canalele care nu sunt DVB au nevoie de un program XMLTV din altă sursă, legat prin ID EPG.
Reîncărcați lista M3U în player după ce porniți arhiva: atributele de catch-up apar doar în listele exportate după aceea.
Adresele arhivei
Toate stau lângă adresa live a canalului, http://<domeniu-public>/live/<canal>/, cu aceleași reguli de acces (token, IP-uri permise). <început> este ora UNIX (UTC, în secunde), <durată> este în secunde.
| Adresa | Ce primiți |
|---|---|
index-<început>-<durată>.m3u8 |
o emisiune (catch-up) |
index-<început>-now.m3u8 |
de la <început> până la live (start-over) |
timeshift_abs-<început>.m3u8 |
la fel |
timeshift_rel-<secunde>.m3u8 |
canalul cu atâtea secunde în urmă |
archive-<început>-<durată>.ts |
o emisiune ca un singur flux MPEG-TS (?download=1 o descarcă drept fișier) |
timeshift_abs-<început>.ts |
MPEG-TS de la <început>, care continuă până la live |
Exemplu — o oră începând cu 7 octombrie 2026, 18:00 UTC:
http://tv.domeniul-dumneavoastra.ro:33400/live/canal-1/index-1791396000-3600.m3u8?token=…
- La un canal cu mai multe calități, playlistul este un master cu toate calitățile, ca la live.
- Tokenul din adresă se adaugă singur la fiecare adresă din playlist.
- O cerere acoperă cel mult 24 de ore; playlisturile deschise (start-over, timeshift) merg cel mult 6 ore în urmă.
În panou
În fila Program a canalului, emisiunile trecute aflate în arhivă au butonul Redă, iar emisiunea în curs are De la început. Playerul din panou are bară de timp, deci puteți sări oriunde în emisiune.
Metrici
/metrics conține castreon_archive_bytes, castreon_archive_disk_free_bytes, castreon_archive_disk_total_bytes, castreon_archive_channels_recording și castreon_archive_pruned_hours_total — utile, de exemplu, pentru o alertă în Grafana când discul arhivei se umple. Vedeți Metrici și Grafana.
Probleme frecvente
- Canalul nu înregistrează (Setări → Arhivă): canalul trebuie să ruleze; dacă pe rând apare un mesaj, el spune motivul (de exemplu HLS criptat sau segmente fMP4).
- „not in archive” (404): intervalul cerut este dinaintea primei înregistrări sau a fost deja șters (zilele canalului, spațiul minim liber).
- Playerul nu arată arhiva: reîncărcați lista M3U și programul TV în player.
- „planul Pro păstrează arhiva cel mult 7 zile”: pentru mai multe zile este nevoie de planul Enterprise.