Zum Inhalt springen

Die Weboberfläche

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.

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.

Die obere Navigation enthält die vier Arbeitsbereiche und zwei Bedienelemente:

ElementWas es ist
UDP channelsDie Hauptseite. Eine Karte pro Multicast-Sender.
HDMI channelKonfiguration der lokalen HDMI-Ausgabe, sofern das Gerät eine hat.
DVB-CMultiplex-Konfiguration und Modulatorstatus.
SettingsGerätweite Standardwerte und Standortkennung.
Design-UmschalterHell oder dunkel. Im Browser gespeichert, nicht auf dem Gerät.
Sign outLöscht das Session-Cookie.

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.

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.

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.

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.

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.

Über den Karten zeigt ein Banner den Lizenzstatus des Geräts. Seine Farbe zeigt, worauf es ankommt — ob die Sender auf Sendung sind:

FarbeBedeutung
GrünLizenziert. Tarif und Senderlimit werden angezeigt.
BernsteinEs 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.
BlauWartend: Das Gerät registriert sich oder wartet auf Freigabe. Noch wird nichts gestreamt.
RotDas 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.

KachelWas sie zeigtSource
BitrateDie Rate, die die Engine für den von ihr verarbeiteten Stream meldet.Von der Engine gemeldet
SpeedOb der Sender mit der Echtzeit Schritt hält. Alles deutlich unter 1× fällt zurück.Von der Engine gemeldet
UptimeWie 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 bitrateWas tatsächlich die Netzwerkschnittstelle in Richtung dieser Gruppe verlässt.Auf der Leitung gemessen
Source pingRound-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.

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.

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.

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.

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.

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).

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.

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.

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.

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.

Eine Browser-Eigenheit, die Sie kennen sollten

Section titled “Eine Browser-Eigenheit, die Sie kennen sollten”