L'interface web
Connexion
Section titled “Connexion”L’interface écoute par défaut sur le port 8080. Les identifiants proviennent des variables d’environnement CASTMUX_WEB_USERNAME et CASTMUX_WEB_PASSWORD définies au démarrage du conteneur ; il n’y a ni base d’utilisateurs séparée, ni assistant de création de compte au premier lancement.
Une connexion réussie crée un cookie de session valable sept jours. Sept jours, pour qu’un opérateur qui consulte la tête de réseau chaque semaine n’ait pas à se réauthentifier à chaque visite, tandis qu’un portable oublié dans un placard finit par ne plus constituer une porte d’entrée.
Un seul compte, pour l’instant
Section titled “Un seul compte, pour l’instant”Il n’existe qu’un seul compte administrateur. Toute personne qui se connecte dispose du contrôle total : elle peut modifier les chaînes, changer les moteurs par défaut et redémarrer l’appareil.
Ce n’est pas satisfaisant pour un site où le personnel d’accueil et l’installateur ont tous deux besoin d’un accès, et mieux vaut le dire franchement que l’enjoliver. L’accueil a besoin de voir si une chaîne est à l’antenne et éventuellement de la redémarrer ; il n’a pas besoin de pouvoir changer l’interface de sortie. Un mot de passe partagé signifie soit que les identifiants de l’installateur circulent parmi le personnel, soit que le personnel n’a aucun accès et que la moindre question se transforme en intervention.
Plusieurs utilisateurs avec des rôles distincts figurent sur la feuille de route. D’ici là, la parade réaliste se situe au niveau du réseau : restreignez les adresses autorisées à joindre le port 8080.
Organisation
Section titled “Organisation”La navigation supérieure comprend les quatre zones de travail et deux commandes :
| Élément | Description |
|---|---|
| UDP channels | La page principale. Une carte par chaîne multicast. |
| HDMI channel | Configuration de la sortie HDMI locale, si l'appareil en possède une. |
| DVB-C | Configuration des multiplex et état du modulateur. |
| Settings | Valeurs par défaut de l'appareil et identification du site. |
| Bascule de thème | Clair ou sombre. Mémorisé dans le navigateur, pas sur l'appareil. |
| Sign out | Supprime le cookie de session. |
Le pied de page
Section titled “Le pied de page”Le pied de page est présent sur chaque page et affiche l’état de l’appareil lui-même : version, charge CPU, utilisation mémoire, température CPU et débit réseau par interface. Il se rafraîchit toutes les quinze secondes.
Deux de ces indicateurs sont plus utiles qu’il n’y paraît. La température CPU compte, car le matériel de référence est sans ventilateur et vit dans un placard : une aération obstruée apparaît ici des semaines avant de se traduire par de l’instabilité. Le débit par interface est le moyen le plus rapide de confirmer que le trafic sort bien par l’interface que vous croyez : si la carte réseau tournée vers les téléviseurs n’affiche rien alors que la carte d’administration affiche plusieurs mégabits, la route multicast pointe au mauvais endroit — voir Installation → routage multicast.
La page des chaînes
Section titled “La page des chaînes”Une carte par chaîne. La carte est conçue pour que l’on puisse répondre à la question « cette chaîne est-elle à l’antenne ? » sans rien ouvrir.
L’interrupteur d’activation
Section titled “L’interrupteur d’activation”Active ou désactive la chaîne. Une chaîne désactivée n’est démarrée en aucun cas, quels que soient les spectateurs ou le réglage de marche permanente. C’est l’interrupteur à utiliser pour mettre une chaîne hors service ; la supprimer fait perdre sa configuration.
Badges
Section titled “Badges”always-on / on-demand
Indique si la chaîne tourne en continu ou seulement lorsque quelqu’un regarde. Une chaîne à la demande sans activité ni spectateur se comporte correctement, elle n’est pas en panne — une distinction à garder en tête avant de signaler un défaut.
nombre de spectateurs
Le nombre de clients ayant rejoint le groupe multicast de cette chaîne, déduit de l’appartenance IGMP observée et non deviné. Survolez-le pour voir les adresses des clients une par une : c’est ainsi que vous confirmez que c’est bien le téléviseur de la chambre 214 qui regarde.
moteur
Le moteur utilisé par cette chaîne. À vérifier avant de lire les tuiles de métriques, car les deux moteurs ne renseignent pas les mêmes tuiles.
profil de résolution
Le palier de qualité demandé et, entre parenthèses, ce que le serveur d’origine proposait réellement. Voir ci-dessous.
Le badge de résolution orange
Section titled “Le badge de résolution orange”Un profil de résolution demande un palier de l’échelle de qualité de la source — 4K, Full HD, HD, SD ou mobile. Les serveurs d’origine publient les échelles qu’ils veulent, si bien que le palier demandé n’existe souvent pas. Castmux sélectionne la hauteur disponible la plus proche plutôt que de refuser de démarrer, car une chaîne qui diffuse du 480p quand vous avez demandé du 576p vaut mieux qu’une chaîne qui ne démarre pas parce que personne ne sert exactement du 576p.
Lorsque la correspondance est inexacte, le badge affiche les deux valeurs — 4K (1080p) signifie que 4K a été demandé et que 1080p est ce que le serveur d’origine proposait — et il est coloré en orange.
Profils de résolution détaille les règles de sélection, y compris la raison pour laquelle une échelle dont l’audio est livré séparément est purement et simplement refusée.
Le bandeau de licence
Section titled “Le bandeau de licence”Au-dessus des cartes, un bandeau affiche l’état de licence de l’appareil. Sa couleur indique ce qui compte : si les chaînes sont à l’antenne ou non.
| Couleur | Signification |
|---|---|
| Vert | Sous licence. L'offre et la limite de chaînes sont affichées. |
| Orange | Diffusion en cours, mais quelque chose requiert votre attention : le serveur de licences est injoignable et l'appareil fonctionne sur sa licence en cache, ou des chaînes fournies par le serveur de licences ont été refusées. La raison est indiquée. |
| Bleu | En attente : l'appareil est en cours d'enrôlement, ou attend d'être approuvé. Rien n'est encore diffusé. |
| Rouge | La diffusion est bloquée ; la raison et le contact à joindre sont indiqués. |
Le device code (code d’appareil) est affiché à droite. C’est ce que le support vous demande, et ce qui identifie cet appareil lors de son approbation. Tant que la licence n’est pas active, un bouton Retry lance immédiatement une vérification. L’appareil réessaie aussi de lui-même toutes les cinq minutes tant qu’il est bloqué : le bouton sert donc lorsque vous venez de corriger la cause. La page se recharge quelques secondes plus tard, car une vérification peut ajouter, supprimer ou modifier des chaînes fournies par la licence.
Lorsque rien n’est diffusé, ce bandeau est le premier endroit où regarder. L’interface web reste volontairement accessible même lorsque le serveur de licences est injoignable, précisément pour que ce bandeau puisse en donner la raison. Voir Accès Internet.
Tuiles de métriques
Section titled “Tuiles de métriques”| Tuile | Description | Source |
|---|---|---|
| Bitrate | Le débit que le moteur déclare pour le flux qu'il traite. | Déclaré par le moteur |
| Speed | Indique si la chaîne suit le temps réel. Toute valeur nettement inférieure à 1× signifie qu'elle prend du retard. | Déclaré par le moteur |
| Uptime | Depuis combien de temps cette chaîne tourne depuis son dernier démarrage. Une durée courte sur une chaîne que personne n'a touchée est la signature d'une boucle de redémarrages. | Castmux |
| UDP bitrate | Ce qui sort réellement de l'interface réseau pour ce groupe. | Mesuré sur le fil |
| Source ping | Temps aller-retour vers le serveur d'origine. Un signe avant-coureur utile : un ping source qui se dégrade avant qu'une chaîne ne devienne instable désigne le réseau, pas Castmux. | Castmux |
La distinction de la dernière colonne est celle qui compte. Les chiffres déclarés par le moteur décrivent ce qu’un processus croit faire ; le débit UDP décrit ce qui s’est passé. Quand ils divergent, c’est le débit UDP qui a raison. C’est aussi la seule tuile renseignée de manière identique avec les deux moteurs — le moteur pass-through ne décode jamais la vidéo, il n’a donc ni fréquence d’images ni vitesse à déclarer, et ces tuiles resteront vides sur une chaîne pass-through parfaitement saine.
Les tuiles sont un instantané en direct. Pour l’historique, utilisez le bouton Stats de la carte : il affiche les graphiques des 30 dernières minutes du flux qui sort réellement de l’appareil, avec le détail des erreurs — erreurs de continuité et de transport, précision du PCR, et débit avec sa dispersion. C’est la vue qui indique si une image qui « se dégrade parfois » est endommagée avant d’atteindre l’appareil ou après.
Actions de la carte
Section titled “Actions de la carte”Cinq boutons : Preview, Logs, Stats, Edit et Delete. Stats ouvre les graphiques de qualité du transport stream de la chaîne — débit, précision du PCR et erreurs de transport sur la dernière demi-heure — décrits dans Qualité du transport stream. Delete demande une confirmation et supprime la chaîne de la configuration ; il n’y a pas d’annulation possible, sauf à restaurer une sauvegarde du répertoire de configuration. Sur une chaîne fournie par le serveur de licences, Edit et Delete sont désactivés, car la prochaine vérification de licence les annulerait — voir Chaînes fournies par la licence.
Une chaîne associée à un guide des programmes affiche aussi le programme en cours et le suivant.
Ajouter et modifier une chaîne
Section titled “Ajouter et modifier une chaîne”La même boîte de dialogue sert aux deux. Champs :
Name
Utilisé dans l’interface et dans les journaux ; avec le moteur pass-through, il devient le nom de service transporté dans le transport stream, et c’est donc ce qu’un téléviseur peut afficher.
Source type
HLS, SRT, RTMP ou MPEG-TS (en multicast UDP ou en HTTP). Voir Types de source.
Source URL
L’endroit d’où la chaîne est récupérée. En HLS, il s’agit normalement de la master playlist.
Destination address
Le groupe multicast. Utilisez la plage à portée administrative, 239.0.0.0/8.
Destination port
Le port UDP. Chaque chaîne a besoin de sa propre combinaison groupe-port.
Engine
Pass-through ou remultiplexage, en remplacement de la valeur par défaut de l’appareil pour cette chaîne.
Resolution profile
Le palier de l’échelle HLS à sélectionner, ou vide pour accepter ce que le serveur d’origine liste en premier. Vide est la valeur par défaut, et c’est celle de toutes les chaînes préexistantes.
Force always-on
Fait tourner la chaîne en continu au lieu de seulement lorsqu’elle a des spectateurs.
Les modifications prennent effet au prochain démarrage de la chaîne : modifier une chaîne en cours la redémarre donc.
Aperçu
Section titled “Aperçu”L’aperçu lit la chaîne dans le navigateur. Il le fait en relisant la propre sortie multicast de la chaîne plutôt qu’en ouvrant une seconde connexion vers le serveur d’origine : ce que vous voyez est donc ce que reçoivent les téléviseurs, y compris tout défaut introduit entre le moteur et le fil. Un aperçu défectueux de la même façon qu’un téléviseur est réellement instructif ; un aperçu tiré séparément de la source ne le serait pas.
Journaux
Section titled “Journaux”Chaque chaîne conserve son propre tampon circulaire de lignes de journal — 1000 entrées ou 24 heures, selon la limite atteinte en premier. Le bouton Logs de la carte l’ouvre.
Un journal par chaîne plutôt qu’un flux combiné, car la question posée porte presque toujours sur une chaîne précise, et sur un appareil de vingt chaînes un journal combiné enfouit les six lignes pertinentes sous plusieurs milliers de lignes sans intérêt. Le tampon est en mémoire et ne survit pas à un redémarrage : récupérez ce dont vous avez besoin avant de redémarrer le conteneur.
La page DVB-C
Section titled “La page DVB-C”C’est là que les chaînes IP sont assemblées en un multiplex sur une véritable porteuse RF : état du modulateur, composition du multiplex et paramètres de la porteuse. Présente qu’un modulateur soit installé ou non. Tous les détails dans Multiplexage DVB-C.
La page EPG
Section titled “La page EPG”C’est là que l’on ajoute les sources de guide des programmes et que l’on associe les chaînes à leurs entrées de guide : dernière récupération de chaque source et son résultat, un bouton Sync now, et un champ d’association par chaîne qui suggère des identifiants de guide au fil de la saisie. Voir Guide des programmes (EPG).
La page HDMI
Section titled “La page HDMI”Configuration de la sortie HDMI locale de l’appareil — une seule chaîne affichée sur un écran directement raccordé, typiquement dans un hall ou une salle d’attente. Voir Sortie HDMI.
Settings
Section titled “Settings”Les valeurs propres à l’appareil, réparties en quatre cartes.
Global Settings
Location et Re-Seller. Location est plus qu’un libellé : il nomme le site dans les métriques exportées, il est transmis au serveur de licences comme nom du site, et c’est le nom de réseau DVB-C que les téléviseurs affichent pendant une recherche, sauf si un nom de réseau est défini plus bas. Re-Seller désigne l’installateur ou le partenaire responsable du site, et sert aussi d’étiquette aux métriques exportées.
UDP Settings
Le Streaming Engine utilisé par les chaînes qui ne choisissent pas le leur, et l’UDP Device : l’adresse source depuis laquelle le multicast sortant est envoyé. Il ne détermine pas par quelle interface sortent les paquets — c’est la table de routage du noyau qui s’en charge ; voir Installation → routage multicast. Sous Advanced overrides se trouvent les dummy listeners ainsi que la latence SRT et la taille de paquet UDP automatiques, décrits dans la Référence de configuration.
DVB-C Network
Les réglages du réseau câblé dans son ensemble plutôt que d’une fréquence : nom et identifiant du réseau, QAM et débit de symboles, jeu de caractères pour le texte du guide des programmes, et emplacements réservés. Voir Multiplexage DVB-C.
License
Informations de licence en lecture seule : code d’appareil, offre, client, nombre de chaînes sous licence, fin de l’abonnement, date d’enregistrement de l’appareil, dernière vérification, prochain renouvellement de la licence, et identifiant de licence. Recheck licence & channels lance immédiatement une vérification. Contrairement au bouton Retry du bandeau, il est toujours disponible, car c’est aussi le moyen de récupérer une modification de la liste de chaînes auprès du serveur de licences sans attendre la prochaine vérification.
Tous les enregistrements ne sont pas sans effet sur ce qui est à l’antenne :
- Les Global Settings s’appliquent sans rien interrompre.
- Les UDP Settings modifient la façon dont chaque moteur est démarré : les enregistrer redémarre donc toutes les chaînes actives. Une modification de l’UDP Device reconstruit aussi tous les multiplex DVB-C.
- Les valeurs de DVB-C Network sont intégrées à la configuration du modulateur et à la signalisation des multiplex : les enregistrer reconstruit donc tous les multiplex. Toutes les porteuses tombent pendant l’opération, et les téléviseurs du réseau câblé perdent toute la liste de chaînes pendant quelques secondes.
Enregistrez ces deux dernières cartes à un moment calme.
Les réglages de diffusion à la demande et IGMP ne se trouvent pas sur cette page. Ils se définissent dans le fichier de configuration — voir Diffusion à la demande et la Référence de configuration.
Ce qui est volontairement absent
Section titled “Ce qui est volontairement absent”Les chaînes de paramètres brutes des moteurs ne sont pas exposées dans l’interface. Elles existent et peuvent être définies dans /config/config.yaml — voir la Référence de configuration — mais elles ne sont pas modifiables depuis un navigateur.
La raison est la portée des dégâts. Une chaîne de paramètres malformée ne casse pas une seule chaîne : elle casse l’invocation du moteur pour toutes les chaînes qui l’utilisent, et ce au démarrage de la chaîne suivante plutôt qu’au moment où l’erreur a été commise. Placer cela derrière une zone de texte sur une page de réglages, où une modification d’apparence plausible met tout un site hors antenne à trois heures de l’après-midi, n’est pas un bon compromis pour le petit nombre d’installations qui en ont besoin. Modifier le fichier à la place constitue un ralentisseur délibéré : cela exige un accès shell, produit quelque chose que l’on peut comparer (diff), et ce n’est pas une chose que l’on fait par accident.
Actions système
Section titled “Actions système”Restart all streams
Arrête et redémarre toutes les chaînes sans redémarrer l’appareil. Les chaînes reviennent de manière échelonnée, à environ trois secondes d’intervalle : sur une grosse installation, l’opération prend donc une minute environ. L’échelonnement n’est pas cosmétique : tout démarrer en même temps sature la liaison montante vers les sources et fait échouer toutes les chaînes en même temps.
Reboot
Redémarre l’appareil. À utiliser moins souvent que l’instinct ne le suggère — un redémarrage ne peut pas corriger une route multicast qui pointe vers la mauvaise interface, ni une source qui a cessé de servir. Si un redémarrage semble corriger un problème qui revient ensuite, ce n’était pas le redémarrage la solution.