Die Weboberfläche
Anmelden
Section titled “Anmelden”Die Oberfläche lauscht standardmäßig auf Port 8080. Die Zugangsdaten stammen aus den Umgebungsvariablen CASTMUX_WEB_USERNAME und CASTMUX_WEB_PASSWORD, die beim Start des Containers gesetzt werden; es gibt keine eigene Benutzerverwaltung und keinen Assistenten zur Kontoeinrichtung beim ersten Start.
Eine erfolgreiche Anmeldung setzt ein Session-Cookie, das sieben Tage gilt. Sieben Tage deshalb, damit ein Bediener, der die Kopfstation wöchentlich prüft, sich nicht bei jedem Besuch neu anmelden muss, während ein im Schrank vergessener Laptop irgendwann keinen Zugang mehr bietet.
Derzeit ein Konto
Section titled “Derzeit ein Konto”Es gibt ein einziges Administratorkonto. Jeder, der sich anmeldet, hat volle Kontrolle: Er kann Sender bearbeiten, Engine-Standards ändern und das Gerät neu starten.
Für einen Standort, an dem sowohl das Rezeptionspersonal als auch der Installateur Zugang brauchen, reicht das nicht, und das sollte man offen sagen, statt es zu beschönigen. Die Rezeption muss sehen können, ob ein Sender läuft, und ihn vielleicht neu starten; sie braucht nicht die Möglichkeit, die ausgehende Schnittstelle zu ändern. Ein gemeinsames Passwort bedeutet entweder, dass die Zugangsdaten des Installateurs unter dem Personal kursieren, oder dass das Personal gar keinen Zugang hat und jede Kleinigkeit einen Technikereinsatz erfordert.
Mehrere Benutzer mit unterschiedlichen Rollen stehen auf der Roadmap. Bis dahin ist die realistische Abhilfe auf Netzwerkebene: Beschränken Sie, welche Adressen Port 8080 erreichen können.
Aufbau
Section titled “Aufbau”Die obere Navigation enthält die vier Arbeitsbereiche und zwei Bedienelemente:
| Element | Was es ist |
|---|---|
| UDP channels | Die Hauptseite. Eine Karte pro Multicast-Sender. |
| HDMI channel | Konfiguration der lokalen HDMI-Ausgabe, sofern das Gerät eine hat. |
| DVB-C | Multiplex-Konfiguration und Modulatorstatus. |
| Settings | Gerätweite Standardwerte und Standortkennung. |
| Design-Umschalter | Hell oder dunkel. Im Browser gespeichert, nicht auf dem Gerät. |
| Sign out | Löscht das Session-Cookie. |
Die Fußzeile
Section titled “Die Fußzeile”Die Fußzeile steht auf jeder Seite und zeigt den Zustand des Geräts selbst: Version, CPU-Last, Speichernutzung, CPU-Temperatur und Netzwerk-Bitrate pro Schnittstelle. Sie wird alle fünfzehn Sekunden aktualisiert.
Zwei dieser Werte sind nützlicher, als es zunächst scheint. Die CPU-Temperatur zählt, weil die Referenzhardware lüfterlos ist und in einem Schrank steht; ein verstopfter Lüftungsschlitz zeigt sich hier Wochen, bevor er sich als Instabilität bemerkbar macht. Die Bitrate pro Schnittstelle ist der schnellste Weg zu bestätigen, dass der Verkehr die Schnittstelle verlässt, von der Sie es annehmen: Zeigt die Netzwerkkarte zu den Fernsehern nichts, während die Management-Netzwerkkarte mehrere Megabit zeigt, zeigt die Multicast-Route an die falsche Stelle — siehe Installation → Multicast-Routing.
Die Senderseite
Section titled “Die Senderseite”Eine Karte pro Sender. Die Karte ist so gestaltet, dass sich die Frage „ist dieser Sender auf Sendung?“ beantworten lässt, ohne etwas zu öffnen.
Der Aktiv-Schalter
Section titled “Der Aktiv-Schalter”Aktiviert oder deaktiviert den Sender. Ein deaktivierter Sender wird unter keinen Umständen gestartet, unabhängig von Zuschauern oder der Always-on-Einstellung. Das ist der Schalter, um einen Sender außer Betrieb zu nehmen; beim Löschen geht die Konfiguration verloren.
Badges
Section titled “Badges”always-on / on-demand
Ob der Sender dauerhaft läuft oder nur, solange jemand zuschaut. Ein On-demand-Sender ohne Aktivität und ohne Zuschauer verhält sich korrekt und ist nicht ausgefallen — ein Unterschied, den Sie im Kopf behalten sollten, bevor Sie einen Fehler melden.
Zuschauerzahl
Wie viele Clients der Multicast-Gruppe dieses Senders beigetreten sind, abgeleitet aus beobachteter IGMP-Mitgliedschaft, nicht geraten. Fahren Sie mit der Maus darüber, um die einzelnen Client-Adressen zu sehen — so bestätigen Sie, dass tatsächlich der Fernseher in Zimmer 214 zuschaut.
Engine
Welche Engine dieser Sender verwendet. Es lohnt sich, das vor dem Lesen der Metrik-Kacheln zu prüfen, weil die beiden Engines nicht dieselben Kacheln befüllen.
Auflösungsprofil
Die angeforderte Qualitätsstufe und in Klammern, was der Ursprungsserver tatsächlich hatte. Siehe unten.
Das bernsteinfarbene Auflösungs-Badge
Section titled “Das bernsteinfarbene Auflösungs-Badge”Ein Auflösungsprofil fordert eine Stufe der Qualitätsleiter der Quelle an — 4K, Full HD, HD, SD oder mobile. Ursprungsserver veröffentlichen beliebige Stufenleitern, daher existiert die angeforderte Stufe häufig nicht. Castmux wählt dann die nächstliegende verfügbare Höhe, statt den Start zu verweigern, denn ein Sender, der 480p streamt, wenn Sie 576p angefordert haben, ist besser als einer, der nicht startet, weil niemand genau 576p liefert.
Ist die Übereinstimmung nicht exakt, zeigt das Badge beide Werte — 4K (1080p) bedeutet, dass 4K angefordert wurde und der Ursprungsserver 1080p anbot — und ist bernsteinfarben.
Auflösungsprofile beschreibt die Auswahlregeln, einschließlich der Frage, warum eine Stufenleiter mit separat ausgeliefertem Ton rundweg abgelehnt wird.
Das Lizenzbanner
Section titled “Das Lizenzbanner”Über den Karten zeigt ein Banner den Lizenzstatus des Geräts. Seine Farbe zeigt, worauf es ankommt — ob die Sender auf Sendung sind:
| Farbe | Bedeutung |
|---|---|
| Grün | Lizenziert. Tarif und Senderlimit werden angezeigt. |
| Bernstein | Es wird gestreamt, aber etwas erfordert Aufmerksamkeit: Der Lizenzserver ist nicht erreichbar und das Gerät läuft mit seiner zwischengespeicherten Lizenz, oder vom Lizenzserver bereitgestellte Sender wurden abgelehnt. Der Grund wird angegeben. |
| Blau | Wartend: Das Gerät registriert sich oder wartet auf Freigabe. Noch wird nichts gestreamt. |
| Rot | Das Streaming ist blockiert; Grund und Ansprechpartner werden angezeigt. |
Rechts wird der Gerätecode angezeigt. Nach ihm fragt der Support, und er identifiziert dieses Gerät bei der Freigabe. Solange die Lizenz nicht aktiv ist, meldet eine Schaltfläche Retry das Gerät sofort an. Das Gerät versucht es im blockierten Zustand außerdem alle fünf Minuten selbst erneut; die Schaltfläche ist also für den Fall gedacht, dass Sie die Ursache gerade behoben haben. Die Seite lädt einige Sekunden später neu, weil eine Anmeldung von der Lizenz bereitgestellte Sender hinzufügen, entfernen oder ändern kann.
Wenn nichts gestreamt wird, sehen Sie zuerst auf dieses Banner. Die Weboberfläche ist bewusst auch dann verfügbar, wenn der Lizenzserver nicht erreichbar ist — genau damit dieses Banner den Grund nennen kann. Siehe Internetzugang.
Metrik-Kacheln
Section titled “Metrik-Kacheln”| Kachel | Was sie zeigt | Source |
|---|---|---|
| Bitrate | Die Rate, die die Engine für den von ihr verarbeiteten Stream meldet. | Von der Engine gemeldet |
| Speed | Ob der Sender mit der Echtzeit Schritt hält. Alles deutlich unter 1× fällt zurück. | Von der Engine gemeldet |
| Uptime | Wie lange dieser Sender seit seinem letzten Start läuft. Eine kurze Laufzeit bei einem Sender, den niemand angefasst hat, ist das Kennzeichen einer Neustartschleife. | Castmux |
| UDP bitrate | Was tatsächlich die Netzwerkschnittstelle in Richtung dieser Gruppe verlässt. | Auf der Leitung gemessen |
| Source ping | Round-Trip-Zeit zum Ursprungsserver. Ein nützliches Frühwarnzeichen: Verschlechtert sich der Source ping, bevor ein Sender instabil wird, liegt das Problem im Netzwerk, nicht bei Castmux. | Castmux |
Entscheidend ist die Unterscheidung in der letzten Spalte. Von der Engine gemeldete Werte beschreiben, was ein Prozess zu tun glaubt; die UDP-Bitrate beschreibt, was geschehen ist. Widersprechen sie sich, hat die UDP-Bitrate recht. Sie ist außerdem die einzige Kachel, die bei beiden Engines gleich befüllt wird — die Pass-through-Engine dekodiert nie Video, hat also weder Bildrate noch Geschwindigkeit zu melden, und diese Kacheln bleiben bei einem völlig gesunden Pass-through-Sender leer.
Die Kacheln sind eine Momentaufnahme. Für den Verlauf verwenden Sie die Schaltfläche Stats auf der Karte: Sie stellt die letzten 30 Minuten des Streams, der das Gerät tatsächlich verlässt, grafisch dar, mit aufgeschlüsselten Fehlern — Continuity- und Transportfehler, PCR-Genauigkeit sowie Bitrate mit ihrer Streuung. Diese Ansicht zeigt, ob ein Bild, das „manchmal aufbricht“, beschädigt wird, bevor es das Gerät erreicht, oder danach.
Aktionen auf der Karte
Section titled “Aktionen auf der Karte”Fünf Schaltflächen: Preview, Logs, Stats, Edit und Delete. Stats öffnet Graphen der Transportstromqualität des Senders — Bitrate, PCR-Genauigkeit und Transportfehler der letzten halben Stunde —, beschrieben unter Qualität des Transportstroms. Delete fragt nach einer Bestätigung und entfernt den Sender aus der Konfiguration; rückgängig machen lässt sich das nur durch Wiederherstellen einer Sicherung des Konfigurationsverzeichnisses. Bei einem vom Lizenzserver bereitgestellten Sender sind Edit und Delete deaktiviert, weil die nächste Lizenzanmeldung die Änderung rückgängig machen würde — siehe Über die Lizenz bereitgestellte Sender.
Ein einem Programmführer zugeordneter Sender zeigt außerdem, was gerade läuft und was als Nächstes kommt.
Einen Sender anlegen und bearbeiten
Section titled “Einen Sender anlegen und bearbeiten”Für beides dient derselbe Dialog. Felder:
Name
Wird in der Oberfläche und in den Logs verwendet und bei der Pass-through-Engine zum Dienstnamen im Transportstrom — also das, was ein Fernseher unter Umständen anzeigt.
Source type
HLS, SRT, RTMP oder MPEG-TS (über UDP-Multicast oder HTTP). Siehe Quelltypen.
Source URL
Woher der Sender bezogen wird. Bei HLS ist das normalerweise die Master-Playlist.
Destination address
Die Multicast-Gruppe. Verwenden Sie den administrativ begrenzten Bereich 239.0.0.0/8.
Destination port
Der UDP-Port. Jeder Sender braucht seine eigene Kombination aus Gruppe und Port.
Engine
Pass-through oder Remux; überschreibt für diesen Sender den Standard des Geräts.
Resolution profile
Welche Stufe der HLS-Stufenleiter gewählt wird, oder leer, um zu übernehmen, was der Ursprungsserver zuerst aufführt. Leer ist der Standard und der Wert aller bereits bestehenden Sender.
Force always-on
Lässt den Sender dauerhaft laufen statt nur, solange er Zuschauer hat.
Änderungen wirken beim nächsten Start des Senders; das Bearbeiten eines laufenden Senders startet ihn daher neu.
Vorschau
Section titled “Vorschau”Die Vorschau spielt den Sender im Browser ab. Dazu liest sie die eigene Multicast-Ausgabe des Senders erneut, statt eine zweite Verbindung zum Ursprungsserver zu öffnen. Was Sie sehen, ist also das, was die Fernseher empfangen, einschließlich jedes Fehlers, der zwischen Engine und Leitung entsteht. Eine Vorschau, die auf dieselbe Weise gestört ist wie ein Fernseher, ist wirklich aufschlussreich; eine Vorschau, die separat von der Quelle bezieht, wäre es nicht.
Jeder Sender führt seinen eigenen Ringpuffer mit Log-Zeilen — 1000 Einträge oder 24 Stunden, je nachdem, was zuerst erreicht ist. Die Schaltfläche Logs auf der Karte öffnet ihn.
Pro Sender statt als ein gemeinsamer Strom, weil die Frage fast immer einen bestimmten Sender betrifft und ein gemeinsames Log auf einem Gerät mit zwanzig Sendern die sechs relevanten Zeilen unter mehreren tausend irrelevanten begräbt. Der Puffer liegt im Arbeitsspeicher und übersteht keinen Neustart; sichern Sie also alles Benötigte, bevor Sie den Container neu starten.
Die DVB-C-Seite
Section titled “Die DVB-C-Seite”Hier werden IP-Sender zu einem Multiplex auf einem echten HF-Träger zusammengestellt: Modulatorstatus, Zusammensetzung des Multiplex und Trägerparameter. Die Seite ist vorhanden, ob ein Modulator eingebaut ist oder nicht. Alle Einzelheiten stehen unter DVB-C-Multiplexing.
Die EPG-Seite
Section titled “Die EPG-Seite”Hier werden Programmführer-Quellen hinzugefügt und Sender ihren Einträgen im Programmführer zugeordnet: letzter Abruf jeder Quelle und dessen Ergebnis, eine Schaltfläche Sync now und pro Sender ein Zuordnungsfeld, das bei der Eingabe Programmführer-Kennungen vorschlägt. Siehe Programmführer (EPG).
Die HDMI-Seite
Section titled “Die HDMI-Seite”Konfiguration der lokalen HDMI-Ausgabe des Geräts — ein einzelner Sender, der auf einem direkt angeschlossenen Display wiedergegeben wird, typischerweise für einen Bildschirm im Foyer oder Wartebereich. Siehe HDMI-Ausgabe.
Settings
Section titled “Settings”Gerätweite Werte, auf vier Karten verteilt.
Global Settings
Location und Re-Seller. Location ist mehr als eine Bezeichnung: Sie benennt den Standort in exportierten Metriken, wird dem Lizenzserver als Standortname gemeldet und ist der DVB-C-Netzwerkname, den Fernseher beim Suchlauf anzeigen, sofern unten kein Netzwerkname gesetzt ist. Re-Seller nennt den für den Standort zuständigen Installateur oder Partner und dient ebenfalls als Label exportierter Metriken.
UDP Settings
Die Streaming Engine für Sender, die keine eigene wählen, und das UDP Device: die Quelladresse, von der ausgehender Multicast gesendet wird. Es entscheidet nicht, über welche Schnittstelle die Pakete hinausgehen — das tut die Routing-Tabelle des Kernels; siehe Installation → Multicast-Routing. Unter Advanced overrides finden Sie die Dummy-Listener sowie die automatische SRT-Latenz und UDP-Paketgröße, beschrieben in der Konfigurationsreferenz.
DVB-C Network
Einstellungen für das Kabelnetz als Ganzes statt für eine einzelne Frequenz: Netzwerkname und -ID, QAM und Symbolrate, der Zeichensatz für Programmführer-Texte und Platzhalter-Slots. Siehe DVB-C-Multiplexing.
License
Schreibgeschützte Lizenzangaben: Gerätecode, Tarif, Kunde, Anzahl lizenzierter Sender, Ende des Abonnements, Zeitpunkt der Registrierung des Geräts, letzte Anmeldung, nächste Lizenzerneuerung und die Lizenz-ID. Recheck licence & channels meldet das Gerät sofort an. Anders als die Schaltfläche Retry im Banner ist sie immer verfügbar, weil Sie damit auch eine Änderung der Senderliste vom Lizenzserver abrufen, ohne auf die nächste Anmeldung zu warten.
Nicht jedes Speichern ist für das laufende Programm folgenlos:
- Global Settings greifen, ohne etwas zu unterbrechen.
- UDP Settings ändern, wie jede Engine gestartet wird; das Speichern startet daher jeden aktiven Sender neu. Eine Änderung am UDP Device baut zusätzlich jeden DVB-C-Multiplex neu auf.
- Die Werte unter DVB-C Network fließen in die Modulator-Einrichtung und die Signalisierung der Multiplexe ein; das Speichern baut daher jeden Multiplex neu auf. Jeder Träger fällt für die Dauer aus, und Fernseher am Kabel verlieren für einige Sekunden die gesamte Senderliste.
Speichern Sie die letzten beiden zu einem ruhigen Zeitpunkt.
Die Einstellungen für on demand und IGMP stehen nicht auf dieser Seite. Sie werden in der Konfigurationsdatei gesetzt — siehe On-Demand-Streaming und die Konfigurationsreferenz.
Was hier bewusst fehlt
Section titled “Was hier bewusst fehlt”Rohe Engine-Parameterstrings sind in der Oberfläche nicht zugänglich. Es gibt sie, und sie lassen sich in /config/config.yaml setzen — siehe die Konfigurationsreferenz —, aber im Browser sind sie nicht bearbeitbar.
Der Grund ist die Tragweite. Ein fehlerhafter Parameterstring legt nicht einen Sender lahm, sondern den Engine-Aufruf jedes Senders, der ihn verwendet — und zwar in dem Moment, in dem der nächste Sender startet, nicht in dem Moment, in dem der Fehler gemacht wurde. Das hinter ein Textfeld auf einer Einstellungsseite zu legen, wo eine plausibel aussehende Änderung um drei Uhr nachmittags einen ganzen Standort vom Netz nimmt, ist für die wenigen Installationen, die es brauchen, kein guter Tausch. Stattdessen die Datei zu bearbeiten ist eine bewusste Hürde: Es erfordert Shell-Zugriff, es ergibt etwas, das sich vergleichen lässt, und niemand tut es aus Versehen.
Systemaktionen
Section titled “Systemaktionen”Restart all streams
Stoppt jeden Sender und startet ihn neu, ohne das Gerät neu zu starten. Die Sender kommen gestaffelt zurück, etwa drei Sekunden auseinander; bei einer großen Installation dauert das also rund eine Minute. Die Staffelung ist keine Kosmetik: Alles auf einmal zu starten, lastet den Quell-Uplink aus und lässt jeden Sender gemeinsam scheitern.
Reboot
Startet das Gerät neu. Seltener angebracht, als der Instinkt nahelegt — ein Neustart kann keine Multicast-Route reparieren, die auf die falsche Schnittstelle zeigt, und keine Quelle, die nichts mehr ausliefert. Scheint ein Neustart ein Problem zu beheben, das dann wiederkehrt, war der Neustart nicht die Lösung.