×

⊳ Muxer

MPTS · TSDuck · PSI/SI

MPTS multiplikser in prilagodljivi hibridni statmux

Stream Manager mux sestavlja več SPTS tokov v en CBR MPTS izhod (DVB/IPTV). Prilagodljivi hibridni statmux poveže CBR jedro polnjenje z VBR uravnoteženimi koderji za stalno izhod muxu.

1. Sloj koderja (FFmpeg na stream)

Ko ima nadrejeni mux omogočen statmux, vsak FFmpeg koder teče s kapico-VBR: -b:v <povp> -minrate <min> -maxrate <max> -bufsize <max×2>. VBV medpomnilnik = 2× max daje ~2 s vrhunskega prostora. Statmux tokovi tudi dobijo deterministični GOP odmik (-force_key_frames) na tok_id, da vrhunski I-slike ne sovpadajo čez kanale.

2. Sloj Mux (TSDuck tsp pipeline)

tsp -I null (∞ NULL paketov @ linijska hitrost) → -P merge tsp -I ip <tok> (prekriva prave pakete) → -P continuity (padec alarm) → -P pcradjust --bitrate X (prepiše PCR) → -P pcrverify --jitter-max 500µs → -P bitrate_monitor (stopnja alarm ±5%) → -P regulate --bitrate X --packet-burst 32 → -O ip <ven> --packet-burst 7 --enforce-burst.

3. Izhodni sloj (UDP)

Vtičnik regulate oddaja natanko mux.bitrate bps na žici. Zaostali vhodi > NULL paketi zapolnijo vrzel. Vhodi pri vrhu > notranji vmesnik FIFO (4096 paketov cca. 0,3 s @ 19 Mbps) absorbira. --enforce-burst vsili 7 paketov TS na UDP datagram (1316 B, standard IPTV).

Priporočena velikost (Σ min / povp / max vs mux.bitrate)

Mux vrhnja vrstica prikazuje 3 vsote s statusom barve. Pravila:

Σ povp ≤ 85 % mux.bitrate — povprečna ciljna vsota v vseh kanalih in zvoku. To je mux 'proračun'. 15 % statistična rezerva ščiti pred sovpadanjem vrhov. Zeleno ≤ 85 %, rumeno ≤ 100 %, rdeče > 100 %.

Σ max ≤ 160 % mux.bitrate — vsota vrhunske meje. Dovoljeno preseči zmogljivost (to je namen statmuxa — vrhunci redko sovpadajo). Zeleno ≤ 160 %, amber ≤ 200 %, rdeče > 200 % (izpadi pri trajnem vrhuncu).

Σ min ≤ 50 % mux.bitrate — vsota tal koderja. Varno dno zagotavlja, da koder pri mirnih prizorih ne pade na nepotrebno nizko kakovost. Zeleno ≤ 50 %, amber ≤ 90 %, rdeče > 90 %.

Primer: 4 HD kanali v 19 Mbps DVB-T Mux

Razpoložljiv proračun po PSI/SI/EIT: ~18,5 Mbps. Σ avg = 4 × 4,0 = 16 Mbps (86 % — amber mejna vrednost, znižajte dalje). Σ max = 4 × 6,0 = 24 Mbps (130 % — zeleno, v redu). Σ min = 4 × 3,0 = 12 Mbps (65 % — amber, v redu). Cilj: avg ~85 % proračuna, max ≤ 160 %.

Diagnostika in alarmi

Na ≥ 10 alarmov v 60s se pojavi flash obvestilo v UI muxu, priporočljivo zmanjšanje bitne hitrosti. Samodejne protiukrep NI aktiven — operater se odloči.

-P bitrate_monitor --periodic 60 --min/max ±5 % — alarm, če dejanska stopnja preseže ±5 % od cilja. Pomeni, da je regulate lačen (vhod je odmrl).

-P continuity — sledi TS neprekinjenim števcem. Evidentira opozorilo pri vsakem padcu (preobremenjenost, FFmpeg sesutost, NIC trepljaj).

-P pcrverify --jitter-max 500000 — DVB dovolj PCR jitter ≤ 500 µs. Alarm = pcradjust ne more slediti ali vir ima pretrgane PCR.

Motnje in njihovi vzroki

Sovpadanje GOP — vsi koderji hkrati oddajajo I-okvire, sovpadanje vrhuncev. Popravek: zamik GOP (že pri statmuxu, hash(stream_id) mod gop_size).

Izguba signala vhoda — en kanal postane črn, mux nadaljevanja (zahvaljujoč -I null osnova). Trajanje ~3-8 s za ponovni zagon FFmpeg.

Prekomerna naročnina (trajni vrhunci > zmogljivost) — bloki/zamrzovanje zvoka ~50–200 ms. Popravek: znižajte povprečje Stream za 5–10 % ali odstranite kanal.

PCR drift — STB trepetaj vsakih nekaj sekund. Popravek: pcradjust v cevovodu (že tam), presledi pcrverify alarmov.

STB VBV underrun — STB izgubi sinhronizacijo in jo znova pridobi (~2–3 s). Popravek: encoder bufsize = 2 × maxrate (že nastavljeno), znižajte maxrate.

Parametri tsp pipeline (mux_worker.ex)

--max-input-packets 4096 / --max-flushed-packets 4096 (notranji FIFO cca. 0,3 s @ 19 Mbps). --receive-buffer-size 16777216 (16 MB UDP rcv medpomnilnik na vhod). --packet-burst 32 (regulate) / 7 (izhod, standard IPTV). --enforce-burst (vsak UDP datagram je natanko 7 paketov).

Empirični izračun zmogljivosti (CLT)

Top-bar značka `📐 rec X.XM` prikazuje priporočeno kapaciteto muxu izvedeno iz teorema centralne meje. Vsota neodvisnih VBR tokov se približa normalni porazdelitvi, zato je Mux = μ_skupno + z·σ_skupno + marža. σ_i je ocenjena iz vsakega VBR razpona vhoda kot (max−min)/4 (predpostavka razpon pokriva ±2σ). Marža = 10% μ_skupno kompenzira PSI/SI režijo, jitter kontrole hitrosti koderja in korelacijo toka, ki je čista CLT podcenji.

Barva značke: zelena = cap >= 99,7 % priporočeno (konzervativno) · amber = med 99 % in 99,7 % · rdeča = cap < 99 % (premajhna zmogljivost, tveganje izpadov) · modra = cap ni nastavljen.

z-vrednost glede na cilj pokritosti: 90 % z=1,28 · 95 % z=1,65 · 99 % z=2,33 · 99,7 % z=3,00 (privzeto) · 99,99 % z=3,72 (broadcast kakovost). Opis orodja značke navaja vse ravni; klik aplicira priporočilo 99,7 % na mux.bitrate (potreben ponovni zagon Mux).

σ_eff = σ_skupno × statmux_faktor (statmux_faktor = 0,7 ko je Statmux NA, sicer 1,0)

Priporočene vrednosti na kanal (HD H.264)

1080p25 HD kanal: avg = 4000–5000 kbps, min = avg × 0,75 (~3000–3750), max = avg × 1,5 (~6000–7500). UI samodejno izpolni min/max iz avg. Statmux UI samodejno izpolni avg iz profila transkodirnika Stream. SD kanal: avg = 2000–2500 kbps. UHD: avg = 12000–18000 kbps.

Adaptivni hibridni Statmux

Adaptive Hybrid Statmux je mehanizem med izvajanjem, ki premika neporabljeno zmogljivost iz jedrnih tokov (zaščiteni, polni VBR) na uravnotežene tokove (žrtvovani). Hibridni, ker delujeta dva ločena načina nadzora hitrosti vzporedno (CBR jedro + VBR uravnoteženi); prilagodljiv, ker usmerjevalnik oceni enkrat na sekundo na podlagi HLS-napovedi. Operator označi tokove kot uravnotežene prek potrditvenega polja na desni strani; sistem jih vnaprej kodira v tri nivoje (HIGH/MED/MIN) in usmerjevalnik atomarno zamenja simbolno povezavo glede na preostalo zmogljivost po napovedi jedrnih vrhuncev.

Kapaciteta — kako se delitev bitne hitrosti

Zmogljivost Mux 38 Mbps
  ┌──────────────────────────────────────────────────────────────────┐
  │█████████████████████████████████████████████████████░░░░░░░░░░░░│
  └──────────────────────────────────────────────────────────────────┘
   ◀────── core_max (napoved iz 6 HLS segmentov) ─▶◀── uravnoteženo ──▶
                                                       per_balanced
                                                       = (cap − core_max
                                                          − SI overhead
                                                          − audio) / N

Praktična dobiček (10 tokov × 3 Mbps povp, 4 Mbps max)

Brez prilagodljivega hibridnega statmux-a morate izmerjati mux za najslabši primer Σ max. Z prilagodljivim hibridnim statmux-om izmerjujete približno Σ povp + statistični medpomnilnik (oddajanje korelacije ρ=0,15). Pravi dobiček ~5 Mbps na 38 Mbps muxu ali +1 tok pri istem cap.

Čisti CBR (koder fiksen)

VBR brez Statmux

Adaptive Hybrid Statmux VKLOPLJEN

URL vs Statmux izključnost

Predefinicija URL vhoda po meri in Statmux sta vzajemno izključujoča. S Statmux vklopljenim uravnoteženi transkodirnik uporablja lokalni HLS koderja za nadzor bitrate. Zunanji URL bi zaobšel ta nadzorni krog. UI to uveljavlja v obe smeri — potrditveno polje se zaklene pri nasprotni kombinaciji, opis orodja pa prikazuje, kateri Stream blokira.

Pipeline (koder > uravnoteženi transkodirnik > mux ffmpeg > tsp)

┌─────────────────────────┐
          │  Koder (NVDEC→NVENC)  │ ← UDP satelit
   STREAM │  /dev/shm/stream_X/h264/│
          │  → muxed.m3u8 + segmenti│
          └────────────┬────────────┘
                       │
              ┌────────┴────────┐
              │                 │
        role="core"        role="balanced"
        (zaščiten)         (žrtvovan)
              │                 │
              │                 ▼
              │     ┌───────────────────────────┐
              │     │  BalancedTranscoder       │
              │     │  ffmpeg p1 NVENC VBR      │
              │     │  -maxrate dinamičen        │ ← Adaptive Hybrid usmerjevalnik
              │     └───────────┬───────────────┘
              │                 │
              ▼                 ▼
          ┌─────────────────────────┐
          │  ffmpeg-as-mux          │
          └────────────┬────────────┘
                       ▼ UDP multicast

Dimenzioniranje jedrnega VBR min/avg/max za statmux

Statistični dobiček se pojavi samo, ko imajo koderji širok razpon VBR — ko max cca. avg je koder dejansko CBR in usmerjevalnik nima česa prerazporediti. Konfigurirajte min/avg/max na stream, tako da je Σmax udobno nad zmogljivostjo Mux (prekomerna naročnina = prostor za statistični dobiček) medtem ko Σavg udobno sede pod njim.

Delovni primer — 38 Mbps Mux, 10 HD jedrnih + 2 uravnotežena:

  Staro (CBR-zaklenjeno):     min=2000  avg=3000  max=4000
     Σmax = 10×4000 + 2×7600 = 55200 kbps  (1,45× cap — majhen dobiček)

  Priporočeno (širok VBR):   min=1500  avg=3000  max=6000
     Σmax = 10×6000 + 2×7600 = 75200 kbps  (1,98× cap — zdrav dobiček)
Priporočeni razpon na jedrni stream:

  min  cca. avg × 0,5
  avg  = nominalni cilj glede na ločljivost (HD cca. 3 Mbps, FullHD cca. 5 Mbps)
  max  cca. avg × 2,0

Nasveti in odpravljanje težav

Vsaj 1 uravnoteženi tok — brez enega prilagojevalnik ima ničesar za stiskanje med vrhovi, zato je dobiček = 0

Glasbeni in informativni kanali so najboljši kandidati — 90 %+ tolerance na zmanjšanje hitrosti

Sledi prek vnosov v dnevniku [balance-router] — prikazuje core_max, remaining, prehode nivojev za vsak takt 1 s

Če core_max > zmogljivost (opozorilo CORE OVERPEAK v dnevniku), zmanjšaj število jedrnih streamov ali znižaj maxrate koderja

Delovni tok operatorja

Dodaj streame v Mux (dodelitev kanalov ostane ročna)

Preklopi Statmux na mux glavo (rumeni čip). Ko je omogočen, vsi kodirniki preklapljajo na VBR in ponovno se zaganjajo

Označi žrtvovane streame prek potrditvenega polja na desni strani — tipično glasba/info kanali, kjer je znižanje hitrosti nevidno

Končano. Adaptive Hybrid usmerjevalnik bere 6-segmentno HLS napoved iz jedrnih streamov vsakih 1 s in atomarno zamenja uravnoteženo simbolno povezavo med nivoji HIGH/MED/MIN

StatMux — nativni statistični multipleks

Več kanalov s spremenljivim bitratom si deli en fiksni transportni tok (MPTS). Biti so dinamično prerazporejeni glede na kompleksnost vsebine — zahteven prizor dobi več, statičen manj — tako kakovost ostane izenačena in vsota nikoli ne preseže zmogljivosti žice.

Razred: statmux s povratno zanko z naprejpogledom C1 (naprejpovratna zanka) prek VBR koderjev — načelo broadcast statmux, poganjano iz kompleksnosti izvora.

Arhitektura in pretok podatkov

Architecture diagram

UDP multicast SSM, na kanal

Koderji

kompleksnost izvora

Povratna zanka

lastna linija / stream

dodelitveni sistem (Σ ≤ skupni sklad)

medpomnilnik

null oblazinjenje > CBR

CBR žica pri cap

predvideti kompleksen prizor pred upadom

izmerjena žica — kalibracija

ciljni bitrate

Vsak kanal teče na svoji liniji do Mux (ločen koder + loopback povezava), kjer se vsi združijo v eno MPTS multicast linijo pri natanko fiksnem bitratu. Dodelitveni sistem je centralni mozgani (1 GenServer na Mux), takt ~0,85 s.

Mozgani: povratna zanka + C1 naprejpogled

Dodelitveni sistem združuje dva signala — napoved iz kompleksnosti izvora (naprej) in izmerjeno žico (nazaj). To se približuje broadcast statmuxom, ki poznajo ceno okvira pred kodiranjem.

C1 meri kompleksnost vsebine pri dekoderju — ki vodi koder za latency cevovoda. Relativna sprememba kompleksnosti (korelacija r cca. 0,92 z biti) se aplicira na ciljni bitrate v OBEH smereh PREDEN koder to producira: za naraščajoč prizor se predhodno dodeli (brez upada), za padajočega se bits sprosti zgodaj za ostale.

Izmerjena žica (povratna zanka)

Natančni biti na stream, ki jih odda Mux (merilniki na strani pošiljatelja) kalibrirajo preslikavo kompleksnost > bitrate in vzdržujejo vsoto natanko pri skupnem skladu. Sidro resničnega stanja — napoved C1 ni popolna (r 0,92), zaostala žica jo popravi.

Dobavljivost

Zahtevek stream je podprt z dejansko produkcijo koderja (× vrh pasovne širine). Lahek kanal ne more kopičiti pasovne širine, ki je ne more porabiti — sprosti jo za lačne.

Izenačena kakovost

Cilj ni enaka bitrate ampak enaka kakovost — neprekinjeni pritisk premika bite od visoko-kakovostnih kanalov (nizek QP) k nizko-kakovostnim (visok QP).

Prediktivna prerazporeditev

Ko C1 signalizira upadanje kanala, se njegova pasovna širina preda ostalim v istem taktu — pospešijo preden upad dejansko doseže žico.

Utež na kanal = complexity_q12 × max_bps (akcijska scena + višji max ⇒ več bitov).

Proračun na tok = globalni proračun × utež / Σuteži, stisnjena [min_bps, max_bps], ponovno izračunana vsake 10 ms.

Proporcionalna dodelitev skupnega sklada glede na povpraševanje, zaklenjena na [min, max] iz video profila; prosta pasovna širina gre lačnim.

Cilj koderja = dodelitev / kalibracija (EMA izmerjeno/cilj na stream); poslan s pragom (Δ≥3%/1s) in omejitvijo strmine pri mešanju.

Servo za zadrževanje v medpomnilniku vzdržuje raven čakalne vrste na ~1 s (pas), zasilni varovalec pri preobremenitvi; NULL oblazinjenje dopolni preostanek do CBR.

CBR žica: medpomnilnik + null oblazinjenje + urejanje hitrosti

Izhod je natančen CBR tok pri konfiguriranem cap. Tri plasti to zagotavljajo:

Stoječi medpomnilnik ~1 s

Čakalna vrsta za pošiljanje vzdržuje stalno raven ~1 s žice, ki absorbira sub-sekundne upade GOP (med I-okviri). Preverjeno iz posnetka: 0,5–1 s absorbira 88–91 % upadov.

Null oblazinjenje

Ko je vsebina pod cap, se razlika zapolni z null paketi MPEG-TS (PID 0x1FFF). Žica tako VEDNO doseže cap — DVB skladen.

Natančno urejanje hitrosti

Izhod je urejene hitrosti do natančnega cap (busy-spin ABSTIME); vpetje dolga 12 ms preprečuje dohitevalne sunke po kratkem zastoju — brez PCR tresenja, brez vrhuncev nad cap.

Izhodni graf (reka)

Živobarvni zloženi graf dejanske žice — vsak pas je en kanal, teče gladko z desne. Podatki se merijo na žici (sonda tsp + merilniki NIF), ne ocenjujejo.

Barvni pasovi

Vsak kanal ima stabilno barvo; debelina = takojšnji bitrate. Overhead (PSI/EIT) je siv na dnu, null oblazinjenje je teksturirano belo na vrhu.

Cap / Max črta

Prekinjena črta na vrhu = konfiguriran cap (strop žice). Vsebina + null oblazinjenje vedno sedi pod njim.

Pas Null

Pikčasti beli pas na vrhu = null oblazinjenje (prosta zmogljivost). Tanjši kot je, bolj polna je žica; izgine na zahtevni vsebini.

Oznake izpadov

Rdeče oznake na časovnici = preplav čakalne vrste za pošiljanje (izpad). Nič v stabilnem stanju; sunki samo pri zagonu/poplavi.

Obseg (30s–30m)

Gumbi takoj preklopijo časovno okno (na strani odjemalca), aktivni ima sivo ozadje. Graf v brskalniku kopiči 30 min.

Opis orodja

Premikanje nad prikazuje bitrate na kanal, QP in indeks kakovosti v tistem trenutku (zgodovinska vrednost, ne v živo).

zgornja meja %

Trenutna raven uravnave skupnega sklada (skupni sklad/(skupni sklad−rezanje)). >100 % = nadtlak (polnjenje medpomnilnika), <100 % = rezanje.

Rezerva (drsnik)

Tolerančni pas nad cap — koliko ohraniti kot null rezervo. 0 = natanko zapolni; pozitivno = večja rezerva (varnejše); negativno = rahlo prepolnjenje.

Medpomnilnik (izpadi)

Glava prikazuje izkoriščenost čakalne vrste za pošiljanje % in skupne izpade. Gumb počisti izpade ponastavi merilnik.

GOP

Skupna dolžina GOP za vse kanale v Mux (zaklenjena v video profile ob zagonu). Stenska razporejenost razprši I-okvirje v času, da ne trčijo.

VBV

Velikost medpomnilnika VBV koderja (ms). Manjše splošči I-okvirje (dobro za gibalne kanale), večje da bolj podroben I-okvir. Privzeto 850; možna je preusmeritev na stream.

Kartice in stanja stream

Zaglavje razdelka ima 'Zbori / razširi vse' preklop. Razširi kartico s klikom nanjo ali s klikom njene barvne trake v grafikonu. Leva barvna pasica s potrditvenim okvirjem = članstvo kanala v muxu.

Deluje — kanal kodira in teče na žico.

Zaganjanje — koder se zaganja / ustallja.

sivo + zatemnjenо = naer/napaka in potrditveni okvir IZKLOPLJEN (namerno onemogočen — brez alarma)

Napaka — vhod izgubljen / koder sesul.

Tabele PSI/SI (celoten nabor DVB)

StatMux ustvari celoten nabor obveznih tabel MPEG-TS / DVB neposredno v NIF Mux — brez zunanjega vstavljalnika SI. Tabele so enakomerno časovno razporejene v tok, tako STB hitro pridobi PSI/SI po ponovni nastavitvi.

Tabela

PID

Interval

Namen / vir

EIT vs EPG: polna integracija

EIT (tabela informacij o dogodkih, PID 0x12) ni statičen — je popolnoma priključen na sistem EPG aplikacije. Operator dodeli vsak kanal v Mux storitvi EPG (eit_epg_service_id), Mux pa ustvari živi EIT iz načrtovanih dogodkov.

Dimenzioniranje / priporočila

min = spodnja meja (statična scena). Priporočeno avg × 0,5–0,75. Nastavi dovolj nizko, da koder prihrani pri mirni vsebini za ostale.

avg = ciljna raven. Σ avg vseh kanalov cca. video skupni sklad (cap − overhead − avdio).

max = strop (VBR prostor za vrhunce/reze). Priporočeno avg × 1,5. Ne zaklepaj na avg — VBR potrebuje prostor za vrhunce.

Primeri (avg): SD 1,5–2,5M · HD 2,5–4M · FHD 4–6M · UHD 12–18M. Za statmux ohrani razumen razpon, da se skupni sklad lahko prerazporedi.

Razmerje do broadcast statmuxov

Delamo pravo statistično multipleksiranje — dinamična prerazporeditev bitov prek VBR kanalov, ki si delijo fiksno žico, z izenačevanjem kakovosti. Mehansko smo blizu profesionalnim headend statmuxom (poravnava cap, medpomnilnik 1 s, null oblazinjenje, GOP/B-okviri, preusmeritev tal).

Kar imamo

CBR žica pri cap · medpomnilnik 1 s · proporcionalna dodelitev na stream · naprejpogled C1 · izenačevanje kakovosti · prediktivna prerazporeditev · null oblazinjenje · točno urejanje hitrosti.

Kje se razlikujemo

Broadcast statmux uporablja oceno stopnje-izkrivljanja koderja (točna cena okvirja, koder je suženj dodelitvenemu sistemu). Mi uporabljamo kompleksnost izvora C1 (r cca. 0,92) + VBR koder, ki sam izbere QP — hardverska omejitev, ne oblikovna. Razred: povratna zanka + naprejpogled namesto čistega naprej.

Odpravljanje težav

Simptom

Vzrok / popravek

Vrzeli / null sunki (5–7M) v grafu

Upadi vsebine — bodisi GOP med I-okviri (absorbira ga medpomnilnik 1 s) ali kolektivni zastoj vsebine (obravnava ga prerazporeditev). Naprejpogled C1 je te bistveno zmanjšal.

Izpadi > 0 naraščajo

Prepolnitev čakalne vrste za pošiljanje — vsebina nad cap. Preveri rezervo (drsnik), izkoriščenost in da dodelitveni sistem ne stoji (takt teče). Zagonski sunki so normalni.

En kanal ostaja pri nizkem bitratu / visokem QP

Bodisi statična vsebina (pravilno — sprosti pasovno širino) ali premajhen max v profilu. Preveri min/avg/max in dejansko kompleksnost izvora.

Graf se trese / levi rob se briše

Stran odjemalca — trdo osveži (Ctrl+Shift+R) za nov JS sveženj. Podatki tečejo prek postopnega potiskanja, os = izbrani obseg.

cap % / medpomnilnik se ne spremeni po urejanju

Brez živih vzorcev (mux ustavljen ali kodirniki ne tečejo) — preveri oba, mux in stanje toka.

Arhitektura (end-to-end)

SAT UDP SSM ─┐
             ├─ gst_encoder.py(K1)  CBR ─ TCP127 ─┐        Kompleksnost ZMQ
   (za       ├─ gst_encoder.py(K2)  CBR ─ TCP127 ─┤            ▲   │
   kanal)    └─ gst_encoder.py(Kn)  CBR ─ TCP127 ─┤            │   ▼
                                                  ▼     BalanceRouter
                                   ┌─────── NIF StatMux ───────┐  │ set_bitrate
                                   │ obroč na vhod (pusti-staro)│◄─┘
                                   │ drenažo v 2 prehoda (A pr, V)│
                                   │ alokator: w=cmplx×max    │
                                   │ ×headroom% (drsnik 78-90)│
                                   │ zastarelost-izključitev (>2s)│
                                   │ NULL pad -> žična cap CBR│
                                   │ PCR pass-through          │
                                   └────────────┬──────────────┘
                                                ▼
                                   MPTS  UDP multicast (CBR cap)

gst_encoder.py na stream: UDP SSM SAT vhod > nvh264enc rc-mode=cbr. Bitrate poganja BalanceRouter prek set_bitrate. Scenska kompleksnost (SAD/px) sporočena prek ZMQ dodelitvenemu sistemu.

Obroč na vhod (TCP loopback iz koderja), 2-prehoda odvajanje (audio prioriteta, video polno), proporcionalni alokator, NULL pad natančno do žične kapacitete (CBR), PCR pass-through iz koderja.

En MPTS (PAT/PMT/SDT ustvari NIF) > UDP multicast na izhodnem VLAN. Žica je strogo CBR pri mux.bitrate (NULL oblazinjenje).

Vrstica 1: ⚠ (validacijske težave) · PNR · ime v okvirju (barva = stanje).

Vrstica 2+: min·avg·max kbps · napovedi kompleksnosti Δ nizka/srednja/visoka/vrhunec · VHOD IZGUBLJEN · URL · koder Mbps · SID · service_type.

Barva imena = stanje stream:

Mbps

37 ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ <= cap 37,0 Mbit

· · · · · · · · · · · · · · · · · <= prosti prostor = NULL oblazinjenje

Rdeča 'cap' linija: žična CBR strop (mux.bitrate) — NULL polnila do sem.

Oranžna linija 'headroom N%': = cap × headroom drsnik / 100. Koder set_bitrate ciljaj sem. Se premika z drsnikom.

Siva območja s črnimi pikami med vsebino in kapaciteto = NULL polnjenje (neuporabljena rezerva). Več pik = več rezerve.

Klikni na barvno pasico kanala → samodejno razširi kartico tega kanala spodaj.

Urnik

MuxEitAdapter bere dogodke iz sistema EPG na storitev, gradi sekcije DVB EIT (ime, čas, trajanje, opis, zvrst) in jih zapakira na PID 0x12. Različice sekcij se povečajo pri spremembi EPG — STB prevzame posodobitev.

EIT se injicira neposredno v NIF Mux, enakomerno v null prostor (1 paket / N izhod + p/f periodično) — nadomesti sunkovito zunanjo tsp kaskado. Vrh/avg cca. 1,1, brez izmetavanja vsebine, cap drži.

Tabela 0x4E — trenutno tekočo + naslednji dogodek. Injiciran vsakih ≤2 s za takojšnjo aktualnost zdaj/naslednje na STB.

Mux periodično regenerira EIT .bin iz EPG (~15 s) — sprememba urnika EPG doseže žico brez ponovnega zagona. Glava Mux prikazuje EIT ✓ ko je aktiven.

Tabele 0x50/0x51 — polni urnik ur/dni naprej (segmenti). Enakomerno razporejeni v tok.

Razlikovalno merilnik (nad grafom)

Indikator dejanskega toka v primerjavi s cap. Center = cap (0). Marker levo (zelena) = rezerva (Σ vsebina pod cap); desno (rdeča) = prekoračitev. V živo, premika se vsak takt.

-5 Mbps CAP 37000 kbps +5 Mbps

[#### zelena = rezerva ####|::: rdeča = nad cap :::]

^ −3200k

(Σ vsebina ~3,2 Mbps pod cap = zdrava rezerva)

Drsnik pasovne širine (78–90 %, privzeto 85)

Nižje (>78): več NULL rezerve, varneje, manj tesna izkoriščenost cap.

Višje (→90): tesnejo porabo kapacitete, manj NULL.

⚠ ≥88 %: drsnik postane rumen — blizu stropa zamrznitve prepolnitve obroča. Trdo vpetje 78–90 (ne more doseči 100 — varovalec pred zamrznjenim videom).

Asimetrija: znižanje zanesljivo doda rezervo; zvišanje je omejeno z per-tok max_bps stezko (alokator ne bo potiskal toka nad njegovo max → varno).

Nadzira, kako veliko od kapacitete koderji cilja: koder cilj = proračun × headroom% / 100 (oranžna linija v grafikonu). Spremembe v živo (učinek od naslednjega 10 ms klika), obstaja v SystemConfig.

Izguba signala / odpoved kanala (izolacija)

En kanal odpove (sesutje koderja / izguba signala) => Mux nadaljuje, drugi kanali niso prizadeti, žica drži cap (NULL absorbira izpad), CC=0 pri preživelih. Niti obroča na vhod so neodvisne. Neuspeli kanal prikazuje rdeče utripajoče ime + oznako VHOD IZGUBLJEN; koder je nadzorno znova zagnan in kanal se sam obnovi.

PCR / časovanje

PCR in PES PTS/DTS so pass-through iz koderja (ena domeno ure ⇒ koherentna, brez drift). Preostala PCR jitter ~deseti ms je notranja (10 ms izhodni takt + UDP) — STB/VLC PLL tolerira to, CC=0. Trda DVB-S2 modulator skladnost je izven obsega trenutnega IPTV primera.

CAT — pogojni dostop (samo pri šifriranju / ECM).

EIT — informacije o dogodkih (EPG) — iz sistema EPG, glejte spodaj.

NIT — omrežne informacije (ID omrežja, ime, transportni tok).

PAT — seznam programov (preslika PNR > PMT PID).

PMT — na program: PID video/avdio/PCR, kodeki, deskriptorji.

SDT — imena storitev in ponudniki (kar STB prikaže na seznamu).

TDT/TOT — čas in datum + lokalni zamik (ura STB).