Schnellstart
Bevor Sie beginnen
Section titled “Bevor Sie beginnen”Vier Voraussetzungen müssen erfüllt sein. Ist eine davon nicht erfüllt, klären Sie das jetzt — jede einzelne erzeugt später ein Symptom, das wie ein Fehler in Castmux aussieht und keiner ist.
- Eine Quell-URL, die Sie bereits abgespielt haben. Öffnen Sie sie zuerst in VLC auf Ihrem Laptop. Kann VLC sie nicht abspielen, kann Castmux es auch nicht, und Sie verbringen die nächste Stunde damit, Logs zu einem Problem zu lesen, das beim Ursprungsserver liegt.
- Eine Multicast-Gruppe, die Sie verwenden dürfen.
239.10.0.1:1234ist eine vernünftige erste Wahl:239.0.0.0/8ist der administrativ begrenzte Bereich und kollidiert daher mit nichts, was geroutet wird. Klären Sie mit dem Verantwortlichen für das Netzwerk, dass Gruppe und Port frei sind. - Das Gerät im selben Layer-2-Segment wie die Fernseher. Multicast überquert keinen Router, sofern nicht jemand PIM konfiguriert hat — das ist hier nicht Thema. Gleiches VLAN, gleiche Switch-Infrastruktur.
- Wissen, welche Netzwerkschnittstelle zu den Fernsehern zeigt. Sie brauchen den Namen —
eth0,eth1,enp1s0— und nicht nur „die rechte“. Fast jeder Fehler am Ende dieser Seite liegt daran, dass die Multicast-Route auf die andere zeigt.
Gerät starten
Section titled “Gerät starten”Legen Sie auf dem Host ein Verzeichnis für die Konfiguration an und starten Sie dann den Container:
# A plain host directory, so config.yaml stays readable and backup-ablesudo mkdir -p /opt/castmux/config
sudo docker run -d --name castmux --restart unless-stopped \ --network host \ --cap-add NET_RAW \ --cap-add NET_ADMIN \ -v /opt/castmux/config:/config \ -e CASTMUX_WEB_USERNAME=admin \ -e CASTMUX_WEB_PASSWORD=choose-something-better \ castmux/castmux:latestJede Option ist unverzichtbar:
—network host
Multicast muss ins echte LAN ausgesendet werden. In einem Docker-Bridge-Netzwerk werden die Pakete einwandfrei erzeugt und landen dann nirgendwo, weil die Bridge ein anderes Segment ist als das, in dem die Fernseher hängen. Kein Zähler zeigt das an; es sieht einfach so aus, als funktioniere alles, und niemand empfängt etwas.
—cap-add NET_RAW
Erlaubt das Mitschneiden von Paketen. Castmux nutzt libpcap für zwei Dinge: um zu erkennen, welche Clients einer Gruppe tatsächlich beigetreten sind — die Grundlage für On-Demand-Streaming — und um die tatsächliche Bitrate zu messen, die die Schnittstelle verlässt. Ohne diese Berechtigung sind beide Funktionen blind.
—cap-add NET_ADMIN
Erlaubt das Prüfen und Verwalten der Multicast-Route. Castmux prüft die Routing-Tabelle von außerhalb des Streaming-Prozesses, weil ein Stream an ein nicht routbares Ziel von innen heraus Erfolg meldet.
-v /opt/castmux/config:/config
Hier liegt die einzige YAML-Datei als /config/config.yaml. Binden Sie ein Host-Verzeichnis ein, statt ein benanntes Volume zu verwenden: So können Sie die Konfiguration auch dann mit einem gewöhnlichen Texteditor lesen und bearbeiten, wenn die Weboberfläche nicht erreichbar ist.
Anmelden
Section titled “Anmelden”Öffnen Sie http://<appliance>:8080 im Browser und melden Sie sich mit den Zugangsdaten an, die Sie in der Umgebung gesetzt haben. Port 8080 ist der Standard und lässt sich mit --port ändern.
In der Fußzeile sollten eine Versionsangabe, CPU- und Speicherwerte sowie die Netzwerkraten je Schnittstelle erscheinen. Ist das der Fall, läuft der Prozess einwandfrei, und Sie können Sender anlegen.
Den ersten Sender anlegen
Section titled “Den ersten Sender anlegen”Wählen Sie auf der Seite UDP channels Add channel und füllen Sie aus:
| Feld | Was Sie für diesen ersten Test eintragen |
|---|---|
| Name | Etwas Wiedererkennbares. Der Name erscheint in der Log-Ansicht und bei der Pass-through-Engine als Dienstname im Transportstrom. |
| Source type | HLS. |
| Source URL | Die URL, die Sie in VLC abgespielt haben. Eine Master-Playlist ist in Ordnung. |
| Destination address | 239.10.0.1 |
| Destination port | 1234 |
| Engine | Belassen Sie den Standard, die Pass-through-Engine. Stellt sich heraus, dass die Quelle fMP4/CMAF statt MPEG-TS-Segmenten liefert, wechseln Sie zur Remux-Engine — siehe Streaming-Engines. |
| Force always-on | Aktivieren. Siehe den Hinweis unten. |
Prüfen, ob er wirklich sendet
Section titled “Prüfen, ob er wirklich sendet”Speichern Sie den Sender und warten Sie einige Sekunden. Ein Pass-through-Sender liefert sein erstes Paket typischerweise etwa zwei Sekunden nach dem Start; die Remux-Engine braucht rund viereinhalb.
Die Kachel „UDP bitrate“ prüfen
Section titled “Die Kachel „UDP bitrate“ prüfen”Sehen Sie auf der Senderkarte auf die Kachel UDP bitrate. Sie muss einen Wert ungleich null zeigen.
Auf diese Kachel kommt es an, und es lohnt sich zu verstehen, warum. Die anderen Metriken — Bildrate, Geschwindigkeit, Quell-Bitrate — stammen aus der Selbstauskunft der Engine. Eine Engine kann felsenfest überzeugt sein zu streamen, während nichts im Netzwerk ankommt. Die UDP-Bitrate wird mit libpcap direkt an der Schnittstelle gemessen: Sie zählt Pakete, die tatsächlich hinausgegangen sind. Sie ist das einzige Signal, das ein Prozess, der Ihnen etwas vormacht, nicht erzeugen kann, und zugleich das einzige, das für beide Engines identisch funktioniert.
Auf einem Client prüfen
Section titled “Auf einem Client prüfen”Von einem Rechner im selben Segment wie die Fernseher:
ffplay udp://@239.10.0.1:1234
# or, with VLCvlc udp://@239.10.0.1:1234Das @ ist keine Verzierung. Ohne es versucht der Client, an die Gruppe zu senden, statt ihr beizutreten, und Sie sehen nichts, während das Gerät völlig gesund wirkt.
On demand wieder einschalten
Section titled “On demand wieder einschalten”Wenn der Sender nachweislich funktioniert, bearbeiten Sie ihn und deaktivieren force always-on. Der Sender stoppt dann kurz nachdem der letzte Zuschauer gegangen ist, und startet wieder, sobald einer beitritt. Rechnen Sie bei der Pass-through-Engine mit dem ersten Bild etwa zwei Sekunden nach dem Beitritt.
Ein Fernseher, der auf einen anderen Sender umgeschaltet wurde, meldet sich nicht immer sofort ab, deshalb wartet Castmux eine kurze Nachlaufzeit, bevor es den Stream stoppt. Das ist Absicht: Bei jedem Umschalten zu stoppen und neu zu starten, wäre für den Zuschauer schlechter, als ein paar Sekunden länger zu laufen als unbedingt nötig.
Eine Einschränkung beim Testen: Die Vorschau im Browser zählt als Zuschauer. Ein On-demand-Sender mit geöffneter Vorschau bleibt aktiv — praktisch und gelegentlich verwirrend.
Wie geht es weiter
Section titled “Wie geht es weiter”Lesen Sie vor dem Anlegen der übrigen Sender die Anforderungen. Die Kapazität eines kleinen Geräts ist durch den Arbeitsspeicher begrenzt, und der geht abrupt zur Neige, nicht allmählich.