Ce document décrit la mise en oeuvre
QLC+ est une solution solide et très répandue pour le contrôle DMX, parfaitement adaptée au pilotage de lyres. En revanche, pour un spectacle son et lumière combinant déclenchements MQTT, son, vidéo et lumière, QLC+ ne doit pas être le cœur de la synchronisation, mais un simple exécutant DMX.
Architecture globale recommandéeDans un spectacle son et lumière, la vidéo et le son dictent le temps. QLC+ s’aligne sur ce temps.
[ Serveur MQTT ]
│
▼
[ Régie Maître / Show Control ] ◄── (Node-RED, QLab, Millumin)
│ │
▼ (MTC / LTC / OSC) ▼ (Réseau / HDMI)
[ QLC+ (DMX512) ] [ Lecteur Vidéo ]
QLC+ ne supporte pas nativement le protocole MQTT. Il communique principalement via des requêtes HTTP/WebSockets ou par des protocoles réseau de régie comme OSC ou Art-Net/sACN.
Utiliser un pont intermédiaire (Node-RED ou script Python) : Node-RED reçoit les messages MQTT puis transmet les commandes à QLC+.
Protocole recommandé pour la liaison : Envoyer de l’OSC (Open Sound Control) depuis Node-RED vers QLC+.
C’est un protocole UDP très rapide, nativement supporté par l’onglet Inputs/Outputs de QLC+.
Alternative WebSocket :
Si QLC+ active son serveur web (-w), il est possible d’envoyer des commandes de contrôle en WebSocket via son API intégrée.
Deux approches principales existent selon le niveau de complexité :
Si les fichiers vidéo sont légers et sur la même machine, QLC+ gère l’affichage vidéo direct via l’onglet Show.
Comment faire : Placer une piste vidéo et une piste lumière sur la même Timeline.
QLC+ déclenchera le fichier multimédia.
Limites : QLC+ n’est pas un media server (gestion limitée du multiprojection, du warping ou des codecs lourds).
Séparer la vidéo sur un logiciel dédié (Media Server) et le synchroniser avec QLC+.
Les logiciels vidéo recommandés :
QLab (macOS) / Millumin (macOS) : Références en spectacle vivant. Très stables, ils reçoivent/envoient du Timecode et de l’OSC.
Resolume Arena / TouchDesigner (Windows/macOS) : Idéaux si la vidéo nécessite du mapping avancé sur des structures ou de la génération temps réel.
Raspberry Pi avec mpv / info-beamer (Budget réduit / installation fixe) : Pilotable en réseau via scripts si les besoins sont simples.3.
Les protocoles de synchronisation lumière-vidéoMéthodePrincipeCas d’usageOSC (Open Sound Control)
Envoi de messages type /cue/1/start via réseau local.
Déclenchement au Top (Lancer la vidéo X et la scène QLC+ Y en même temps).
MTC (MIDI Timecode) / LTCSignal temporel continu (ex: 00:01:23:12).
Synchronisation frame-by-frame indispensable pour les calages millimétrés sur la musique.
Art-Net / sACN
Le logiciel vidéo contrôle directement des canaux DMX de QLC+ ou inversement.
Utilisation du flux vidéo comme source de lumière (Pixel Mapping).
Choix de l’interface DMX :
Privilégier un nœud Art-Net / sACN vers DMX (ex: Enttec ODE, DMXKing, ou boîtier open-source ESP32) connecté en Ethernet RJ45, plutôt qu’une simple interface USB-DMX.
L’Ethernet limite les décrochages et permet d’éloigner les lyres de la régie.
Câblage DMX512 :Employer du câble DMX dédié 110 Ω (pas de câble micro XLR standard).Placer impérativement une résistance de fin de ligne (120 Ω) sur la dernière lyre de la chaîne pour éviter les réflexions de signal.
Optimisation du rafraîchissement :
Les lyres consomment beaucoup de canaux (15 à 35 canaux par projecteur). Veiller à ne pas dépasser 512 canaux par univers DMX sous QLC+.
Résumé de la chaîne recommandée
Le raspberry Pi est le centre du spectacle, il va recevoir divers programmes :
Nous avons besoins de commander des animations depuis des ordres Mqtt, pour y arriver nous utilisons des relais pilotés via un ESP32 Wroom
Lien
Pourquoi ce composant ?
Historiquement ce rôle était dévolu à un Arduino Mega2560, mais ce dernier ne dispose pas de couche réseau. L’ESP32 dispose d’une couche Wifi/BlueTooth et est très bon marché. Il remplace avantageusement le couple Arduino/Ethernet HAT
Pour interagir avec les modules, capteurs ou circuits électroniques, l’ESP32 comme tout microcontrôleur possède une multitude de périphériques. Ils sont d’ailleurs beaucoup plus nombreux que sur une carte Arduino Uno classique.
L’ESP32 possède les périphériques suivants :

Pour diffuser des vidéos de spectacle avec un suivi précis du timecode en temps réel et un contrôle via API (REST, WebSocket ou OSC), les serveurs médias grand public comme Jellyfin manquent de précision et d’outils de régie.
Trois solutions open source sur PC ou Raspberry Pi sont taillées pour cet usage scénique :
C’est un serveur média open source professionnel très puissant, conçu pour la diffusion vidéo synchrone ultra-précise et le contrôle à distance.
VLC intègre un serveur Web complet et une API JSON/REST qui permet de le transformer en lecteur distant contrôlable pour un Raspberry Pi ou un PC.
MPV est un lecteur vidéo extrêmement rapide, très populaire en régie vidéo open source grâce à son socket IPC (Inter-Process Communication).
{ "command": ["get_property", "time-pos"] }
| Solution | Précision Timecode | Complexité d’intégration API | Poids / Hardware |
|---|---|---|---|
| MPV (IPC Socket) | Frame-accurate (Très haute) | Moyenne (JSON over Socket / OSC) | Light (Idéal Pi) |
| VLC (API HTTP) | Seconde près (Moyenne) | Facile (Requêtes REST JSON) | Moyen |
| CasparCG | Frame-accurate (Pro Broadcast) | Moyenne à Élevée (AMCP / Node) | Lourd (PC puissant) |
Recommandation :
apt install mpv
nano ~/.config/mpv/mpv.conf
# Activer l'accélération matérielle
hwdec=auto
# Garder la fenêtre au premier plan (optionnel)
ontop=yes
fullscreen=yes
idle=yes
input-ipc-server=/tmp/mpvsocket
apt install socat
echo '{ "command": ["playlist-next"] }' | piped - /tmp/mpvsocket
echo '{ "command": ["loadfile", "/chemin/vers/votre/video.mp4", "replace"] }' | socat - /tmp/mpvsocket
Interroger le statut (savoir où en est le « time »)
Pour récupérer la position actuelle de la vidéo (le temps écoulé en secondes), interrogez la propriété time-pos :
echo '{ "command": ["get_property", "time-pos"] }' | socat - /tmp/mpvsocket
Exemple de réponse retournée par MPV :
{"data":42.158412,"error":"success"}
echo '{ "command": ["get_property", "duration"] }' | socat - /tmp/mpvsocket
Obtenir le pourcentage de lecture effectué :
echo '{ "command": ["get_property", "percent-pos"] }' | socat - /tmp/mpvsocket
Savoir si la vidéo est actuellement en pause (vrai/faux) :
echo '{ "command": ["get_property", "pause"] }' | socat - /tmp/mpvsocket
Pour pouvoir intégrer facilement le flux vidéo d’une caméra dans une page HTML, la règle d’or est d’acheter une caméra qui supporte le protocole RTSP (Real-Time Streaming Protocol) ou le protocole ONVIF. Les caméras chinoises ultra bas de gamme « 100 % cloud » (comme Z-IOT Cam, Tuya/Smart Life basiques ou YCC365) verrouillent le flux pour forcer l’usage de leur application ou l’abonnement au cloud.
Voici les meilleures options bon marché, fiables et compatibles HTML :
C’est la marque grand public la plus appréciée des développeurs et passionnés de domotique.
<img src="http://IP_CAMERA/cgi-bin/api.cgi?cmd=Snap..."> sans aucun plugin ni conversion.Les caméras Tapo sont très bon marché et intègrent une option officielle pour créer un compte local ONVIF/RTSP.
Les navigateurs web modernes (Chrome, Firefox, Edge) ne lisent pas le protocole rtsp:// en direct dans une balise <video>. Il y a deux méthodes simples pour l’intégrer dans ta page web :
Utilise le serveur open-source ultra-léger go2rtc ou MediaMTX (s’installe en 1 clic sur PC, Raspberry Pi ou Docker) :
Si tu choisis une caméra comme Reolink, elle génère directement une suite d’images JPEG via une URL HTTP. Tu peux l’intégrer directement dans ta page :
<!-- Intégration directe sans aucun serveur intermédiaire -->
<img src="http://admin:password@192.168.1.XX/cgi-bin/mjpg/video.cgi" width="640" height="480" />
Si tu veux la simplicité absolue sans serveur intermédiaire, prends une Reolink E1. Si tu veux le prix le plus bas pour streamer du RTSP via un petit outil comme go2rtc, prends une TP-Link Tapo C200.
Pour intégrer une caméra Wi-Fi dans une locomotive à l’échelle HO (), le critère absolu devient l’encombrement physique, l’alimentation électrique et la gestion de la chauffe.
Les caméras du commerce (comme les Tapo ou Reolink) sont beaucoup trop volumineuses, même débosselées.
Voici les meilleures solutions techniques pour le monde ferroviaire miniature :
C’est la solution la plus économique, la plus compacte et la plus personnalisable pour le HO.
<img src="http://192.168.1.XX:81/stream" width="100%" />
Si tu es très limité en place (ex: motrice électrique étroite) :
C’est le point critique dans une locomotive : le courant des rails n’est pas du continu propre. En Analogique ( DC) : Le courant varie avec la vitesse et s’annule à l’arrêt.En Digital (DCC) : Le courant est un signal carré alternatif d’environ .Le schéma d’alimentation obligatoire :
[Rails HO (DCC/DC)] ──► [Pont de diodes] ──► [Condensateur 1000µF] ──► [Convertisseur Step-Down 5V] ──► [ESP32-CAM]
Astuces d’intégration en HO