Ga naar inhoud

De webinterface

De interface luistert standaard op poort 8080. De inloggegevens komen uit de omgevingsvariabelen CASTMUX_WEB_USERNAME en CASTMUX_WEB_PASSWORD die bij het starten van de container worden ingesteld; er is geen aparte gebruikersdatabase en geen wizard voor een account bij de eerste start.

Een geslaagde aanmelding zet een sessiecookie die zeven dagen geldig is. Zeven dagen is zo gekozen dat een beheerder die het kopstation wekelijks controleert zich niet bij elk bezoek opnieuw hoeft aan te melden, terwijl een laptop die in een kast is achtergelaten na verloop van tijd geen toegangsweg meer is.

Er is één beheerdersaccount. Iedereen die zich aanmeldt, heeft volledige controle: zenders bewerken, standaardinstellingen van de engine wijzigen en het apparaat herstarten.

Dat is niet goed genoeg voor een locatie waar zowel receptiemedewerkers als de installateur toegang nodig hebben, en dat zeggen we liever onomwonden dan het mooier voor te stellen. De receptie moet kunnen zien of een zender in de lucht is en die eventueel herstarten; ze hoeft de uitgaande interface niet te kunnen wijzigen. Een gedeeld wachtwoord betekent dat óf de inloggegevens van de installateur onder het personeel rondgaan, óf het personeel helemaal geen toegang heeft en elke kleine vraag een storingsbezoek wordt.

Meerdere gebruikers met afzonderlijke rollen staan op de roadmap. Tot die tijd is de realistische maatregel op netwerkniveau: beperk welke adressen poort 8080 kunnen bereiken.

De bovenste navigatie bevat de vier werkgebieden en twee bedieningselementen:

OnderdeelWat het is
UDP channelsDe hoofdpagina. Eén kaart per multicastzender.
HDMI channelConfiguratie van de lokale HDMI-uitvoer, als het apparaat die heeft.
DVB-CMultiplexconfiguratie en modulatorstatus.
SettingsStandaardinstellingen voor het hele apparaat en identificatie van de locatie.
ThemaschakelaarLicht of donker. Opgeslagen in de browser, niet op het apparaat.
Sign outWist de sessiecookie.

De voettekst staat op elke pagina en toont de toestand van het apparaat zelf: versie, CPU-belasting, geheugengebruik, CPU-temperatuur en netwerkbitrate per interface. Hij wordt elke vijftien seconden ververst.

Twee daarvan zijn nuttiger dan ze op het eerste gezicht lijken. CPU-temperatuur doet ertoe omdat de referentiehardware ventilatorloos is en in een kast staat, en een geblokkeerde ventilatieopening is hier weken eerder zichtbaar dan als instabiliteit. Bitrate per interface is de snelste manier om te bevestigen dat het verkeer de interface verlaat die u denkt: toont de NIC richting de televisies niets terwijl de beheer-NIC enkele megabits toont, dan wijst de multicastroute naar de verkeerde plek — zie Installatie → multicastroutering.

Eén kaart per zender. De kaart is zo ontworpen dat de vraag „is deze zender in de lucht?” te beantwoorden is zonder iets te openen.

Schakelt de zender in of uit. Een uitgeschakelde zender wordt onder geen enkele omstandigheid gestart, ongeacht kijkers of de always-on-instelling. Dit is de schakelaar om te gebruiken wanneer u een zender buiten gebruik stelt; verwijderen gooit de configuratie weg.

always-on / on-demand

Of de zender continu draait of alleen zolang iemand kijkt. Een on-demand zender zonder activiteit en zonder kijkers gedraagt zich correct en is niet defect — een onderscheid dat de moeite waard is om te onthouden voordat u een storing meldt.

aantal kijkers

Hoeveel clients zich bij de multicastgroep van deze zender hebben aangemeld, afgeleid uit waargenomen IGMP-lidmaatschap en niet geraden. Beweeg de muis erover om de afzonderlijke clientadressen te zien; zo bevestigt u dat de televisie in kamer 214 daadwerkelijk degene is die kijkt.

engine

Welke engine deze zender gebruikt. Controleer dat voordat u de meettegels leest, omdat de twee engines niet dezelfde tegels vullen.

resolutieprofiel

De gevraagde kwaliteitstrede en, tussen haakjes, wat de originserver daadwerkelijk had. Zie hieronder.

Een resolutieprofiel vraagt om een trede van de kwaliteitsladder van de bron — 4K, Full HD, HD, SD of mobile. Originservers publiceren elke ladder die ze willen, dus de gevraagde trede bestaat vaak niet. Castmux kiest de dichtstbijzijnde beschikbare hoogte in plaats van te weigeren te starten, want een zender die 480p streamt terwijl u om 576p vroeg, is beter dan een zender die niet start omdat niemand precies 576p levert.

Is de match niet exact, dan toont het label beide waarden — 4K (1080p) betekent dat er om 4K is gevraagd en dat de originserver 1080p aanbood — en is het amberkleurig.

Resolutieprofielen beschrijft de selectieregels, waaronder waarom een ladder met apart geleverde audio direct wordt geweigerd.

Boven de kaarten toont een banner de licentiestatus van het apparaat. De kleur vertelt waar het om gaat: of de zenders in de lucht zijn.

KleurBetekenis
GroenGelicentieerd. Het abonnement en de zenderlimiet worden getoond.
AmberEr wordt gestreamd, maar iets vraagt aandacht: de licentieserver is onbereikbaar en het apparaat draait op zijn gecachte licentie, of zenders die de licentieserver leverde, zijn geweigerd. De reden wordt vermeld.
BlauwWachten: het apparaat wordt geregistreerd of wacht op goedkeuring. Er wordt nog niets gestreamd.
RoodStreamen is geblokkeerd, met de reden en met wie u contact moet opnemen.

Rechts staat de device code (apparaatcode). Daar vraagt support om, en daarmee wordt dit apparaat geïdentificeerd wanneer het wordt goedgekeurd. Zolang de licentie niet actief is, doet een knop Retry direct een check-in. Het apparaat probeert het zolang het geblokkeerd is ook zelf elke vijf minuten opnieuw, dus de knop is voor wanneer u de oorzaak net hebt verholpen. De pagina herlaadt een paar seconden later, omdat een check-in zenders die bij de licentie horen kan toevoegen, verwijderen of wijzigen.

Wordt er niets gestreamd, dan kijkt u als eerste naar deze banner. De webinterface is bewust ook beschikbaar wanneer de licentieserver onbereikbaar is, juist zodat deze banner kan zeggen waarom. Zie Internettoegang.

TegelWat het isSource
BitrateDe snelheid die de engine meldt voor de stream die hij verwerkt.Gemeld door de engine
SpeedOf de zender realtime bijhoudt. Alles wat merkbaar onder 1× ligt, loopt achter.Gemeld door de engine
UptimeHoelang deze zender draait sinds hij voor het laatst is gestart. Een korte uptime op een zender waar niemand aan heeft gezeten, is het kenmerk van een herstartlus.Castmux
UDP bitrateWat de netwerkinterface werkelijk verlaat voor deze groep.Gemeten op de kabel
Source pingRound-trip-tijd naar de originserver. Een nuttig vroeg waarschuwingssignaal: een verslechterende source ping voordat een zender instabiel wordt, wijst op het netwerk, niet op Castmux.Castmux

Het onderscheid in de laatste kolom is het belangrijkste. Door de engine gemelde cijfers beschrijven wat een proces denkt te doen; de UDP-bitrate beschrijft wat er is gebeurd. Spreken ze elkaar tegen, dan heeft de UDP-bitrate gelijk. Het is ook de enige tegel die op beide engines op dezelfde manier wordt gevuld — de pass-through-engine decodeert nooit video, dus die heeft geen framerate of snelheid te melden, en die tegels blijven leeg op een volkomen gezonde pass-through-zender.

De tegels zijn een live momentopname. Gebruik voor de geschiedenis de knop Stats op de kaart: die toont grafieken van de laatste 30 minuten van de stream die het apparaat daadwerkelijk verlaat, met de fouten uitgesplitst — continuïteits- en transportfouten, PCR-nauwkeurigheid, en bitrate met spreiding. Dat is de weergave die laat zien of beeld dat „soms wegvalt” beschadigd raakt voordat het het apparaat bereikt of erna.

Vijf knoppen: Preview, Logs, Stats, Edit en Delete. Stats opent grafieken van de kwaliteit van de transportstream van de zender — bitrate, PCR-nauwkeurigheid en transportfouten over het laatste halfuur — beschreven in Kwaliteit van de transportstream. Delete vraagt om bevestiging en verwijdert de zender uit de configuratie; ongedaan maken kan alleen door een back-up van de configuratiemap terug te zetten. Bij een zender die door de licentieserver wordt geleverd, zijn Edit en Delete uitgeschakeld, omdat de volgende licentie-check-in de wijziging ongedaan zou maken — zie Zenders via de licentie.

Een zender die aan een programmagids is gekoppeld, toont ook wat er nu en wat er hierna op staat.

Hetzelfde dialoogvenster dient voor beide. Velden:

Name

Gebruikt in de interface en in de logs; bij de pass-through-engine wordt het de servicenaam in de transportstream, dus dit is wat een televisie kan tonen.

Source type

HLS, SRT, RTMP of MPEG-TS (via UDP-multicast of HTTP). Zie Brontypen.

Source URL

Waar de zender vandaan wordt gehaald. Bij HLS is dit normaal gesproken de master-playlist.

Destination address

De multicastgroep. Gebruik het administratief afgebakende bereik, 239.0.0.0/8.

Destination port

De UDP-poort. Elke zender heeft zijn eigen combinatie van groep en poort nodig.

Engine

Pass-through of remux; overschrijft voor deze zender de standaard van het apparaat.

Resolution profile

Welke trede van de HLS-ladder wordt gekozen, of leeg om te accepteren wat de originserver als eerste noemt. Leeg is de standaard, en dat is wat elke bestaande zender heeft.

Force always-on

Laat de zender continu draaien in plaats van alleen zolang er kijkers zijn.

Wijzigingen worden van kracht bij de volgende start van de zender, dus het bewerken van een draaiende zender herstart die.

De voorvertoning speelt de zender af in de browser. Dat gebeurt door de eigen multicastuitvoer van de zender opnieuw te lezen, niet door een tweede verbinding met de originserver te openen; wat u ziet is dus wat de televisies ontvangen, inclusief elke storing die tussen de engine en de kabel is ontstaan. Een voorvertoning die op dezelfde manier kapot is als een televisie, is echt informatief; een voorvertoning die apart uit de bron zou putten, zou dat niet zijn.

Elke zender houdt een eigen circulaire buffer met logregels bij — 1000 regels of 24 uur, wat het eerst wordt bereikt. De knop Logs op de kaart opent die.

Per zender en niet als één gecombineerde stroom, omdat de vraag vrijwel altijd over één zender gaat, en op een apparaat met twintig zenders begraaft een gecombineerde log de zes relevante regels onder enkele duizenden irrelevante. De buffer staat in het geheugen en overleeft een herstart niet, dus leg alles wat u nodig hebt vast voordat u de container herstart.

Waar IP-zenders worden samengevoegd tot een multiplex op een echte RF-draaggolf: modulatorstatus, samenstelling van de multiplex en parameters van de draaggolf. Aanwezig of er nu een modulator is geplaatst of niet. Alle details staan in DVB-C-multiplexing.

Waar bronnen voor de programmagids worden toegevoegd en zenders aan hun gidsvermeldingen worden gekoppeld: het laatste ophaalmoment van elke bron en het resultaat daarvan, een knop Sync now, en per zender een koppelveld dat tijdens het typen gids-ID’s voorstelt. Zie Programmagids (EPG).

Configuratie van de lokale HDMI-uitvoer van het apparaat — één zender weergegeven op een direct aangesloten display, doorgaans een scherm in een foyer of wachtruimte. Zie HDMI-uitvoer.

Waarden voor het hele apparaat, verdeeld over vier kaarten.

Global Settings

Location en Re-Seller. Location is meer dan een label: het benoemt de locatie in geëxporteerde meetwaarden, wordt als locatienaam aan de licentieserver gemeld, en is de DVB-C-netwerknaam die televisies tijdens het zoeken tonen, tenzij hieronder een netwerknaam is ingesteld. Re-Seller noemt de installateur of partner die verantwoordelijk is voor de locatie, en labelt eveneens geëxporteerde meetwaarden.

UDP Settings

De Streaming Engine die wordt gebruikt door zenders die geen eigen engine kiezen, en het UDP Device: het bronadres van waaruit uitgaande multicast wordt verzonden. Dit bepaalt niet via welke interface de pakketten vertrekken — dat doet de routeringstabel van de kernel; zie Installatie → multicastroutering. Onder Advanced overrides staan de dummy listeners en de automatische SRT-latentie en UDP-pakketgrootte, beschreven in de Configuratiereferentie.

DVB-C Network

Instellingen voor het kabelnetwerk als geheel in plaats van één frequentie: netwerknaam en -ID, QAM en symbol rate, de tekenset voor tekst in de programmagids, en placeholder-slots. Zie DVB-C-multiplexing.

License

Alleen-lezen licentiegegevens: de apparaatcode, het abonnement, de klant, het aantal gelicentieerde zenders, wanneer het abonnement afloopt, wanneer het apparaat is geregistreerd, de laatste check-in, wanneer de licentie de volgende keer wordt verlengd, en het licentie-ID. Recheck licence & channels doet direct een check-in. Anders dan de knop Retry in de banner is deze altijd beschikbaar, omdat u hiermee ook een wijziging in de zenderlijst van de licentieserver ophaalt zonder op de volgende check-in te wachten.

Niet elke opslagactie is onschadelijk voor wat er in de lucht is:

  • Global Settings worden toegepast zonder iets te onderbreken.
  • UDP Settings veranderen hoe elke engine wordt gestart, dus opslaan herstart alle actieve zenders. Een wijziging van het UDP Device bouwt bovendien elke DVB-C-multiplex opnieuw op.
  • Waarden onder DVB-C Network worden verwerkt in de modulatorinstellingen en de signalering van de multiplexen, dus opslaan bouwt elke multiplex opnieuw op. Elke draaggolf valt zolang weg, en televisies op de kabel verliezen een paar seconden de volledige zenderlijst.

Sla de laatste twee op een rustig moment op.

De instellingen voor on-demand en IGMP staan niet op deze pagina. Die stelt u in het configuratiebestand in — zie On-demand streaming en de Configuratiereferentie.

Ruwe parameterstrings van de engine zijn niet zichtbaar in de interface. Ze bestaan wel en kunnen worden ingesteld in /config/config.yaml — zie de Configuratiereferentie — maar zijn niet vanuit een browser te bewerken.

De reden is de impact. Een misvormde parameterstring breekt niet één zender, maar de engine-aanroep voor elke zender die hem gebruikt, en dat gebeurt op het moment dat de volgende zender start, niet op het moment dat de fout werd gemaakt. Dat achter een tekstvak op een instellingenpagina zetten, waar een aannemelijk ogende wijziging om drie uur ‘s middags een hele locatie uit de lucht haalt, is geen goede ruil voor het kleine aantal installaties dat het nodig heeft. Het bestand bewerken is een bewuste drempel: het vereist shelltoegang, het levert iets op wat u kunt vergelijken, en het is niet iets wat iemand per ongeluk doet.

Restart all streams

Stopt en herstart alle zenders zonder het apparaat te herstarten. De zenders komen gespreid terug, met ongeveer drie seconden ertussen, dus op een grote installatie duurt dit een minuut of zo. Het spreiden is niet cosmetisch: alles tegelijk starten verzadigt de uplink naar de bronnen en laat alle zenders samen mislukken.

Reboot

Herstart het apparaat. Grijp hier minder vaak naar dan uw instinct ingeeft — een herstart kan een multicastroute die naar de verkeerde interface wijst niet herstellen, en lost een bron die niet meer levert niet op. Lijkt een herstart een probleem op te lossen dat daarna terugkomt, dan was de herstart niet de oplossing.

Een eigenaardigheid van browsers die u moet kennen

Section titled “Een eigenaardigheid van browsers die u moet kennen”