Laboratoire d’exploration de Millunode
// Espaces et immersion // Laboratoire d’exploration de Millunode
Depuis plusieurs années, Louis-Robert et moi, Keven, faisons de la conception vidéo pour les arts vivants et visuels. Millumin étant un logiciel vidéo très utilisé en arts vivants, cela fait un bon moment que nous désirons l’expérimenter avec MilluNode, une extension permettant d’utiliser plusieurs ordinateurs en réseau afin d’augmenter le nombre de projecteurs vidéo ou de télévisions qu’il serait possible d’intégrer à une œuvre.
Ce mode de gestion vidéo permet aussi de rapprocher les ordinateurs des systèmes de diffusion vidéo, permettant d’utiliser des câbles vidéo courts et un seul câble réseau long, au lieu de plusieurs câbles vidéo longs connectés à la régie.
L'installation
Pour ce laboratoire, voici la liste des équipements que nous avons utilisés :
- 2 X Ordinateur ASUS PN64-B sur Windows 11
- MilluNode installé sur chacun
- MilluNode peut être installé sur Mac et sur Windows
- Un des ordinateurs avec un écran, et l’autre avec deux écrans.
- Ces ordinateurs sont très intéressants pour ce type de projet en raison de leur format très compact et de leurs multiples sorties vidéo (jusqu’à 4 chacun).
- Nous utilisons « #2 » et « #3 » pour identifier ces ordinateurs, car ils ont déjà servi pour une autre installation et ces numéros sont écrits dessus.
- MilluNode installé sur chacun
- 1 X Ordinateur Mac Book Pro 2017
- Avec Millumin 4
- Millumin peut être installé sur Mac seulement.
- Avec Millumin 4
- Réseau local
- Le routeur utilisé est un Unifi Dream Router
- Il est important d’utiliser un routeur de qualité
- L’ensemble des ordinateurs est connecté de façon filaire et non WIFI, car c’est beaucoup plus performant et plus fiable.
- Le routeur utilisé est un Unifi Dream Router
Il faisait beau, nous nous sommes installés dans le garage avec la porte grand ouverte!
Configuration
Le système fonctionne lorsque Millumin est installé sur l’ordinateur de programmation et de contrôle (Mac) et que MilluNode l’est sur les ordinateurs auxiliaires (Asus).
Les ordinateurs ASUS ont chacun une adresse IP fixe. Cela permet d’avoir un réseau plus cohérent et plus fiable. L’autre option est d’utiliser ce qu’on appelle le DHCP, qui laisse au routeur le choix de l’assignation de l’adresse IP des ordinateurs, ce qui peut occasionner des problèmes si celui-ci donne une adresse différente à un même ordinateur après un redémarrage. Pour mettre une adresse IP fixe sur Windows :
- Aller dans Control Panel
- Network and Sharing Center
- Change adapter settings
- Boutons de droites sur la connexion réseau qu’on veut entrer manuellement Properties
- Double cliquer sur Internet Protocol Version 4
Voici nos configurations pour ce laboratoire :
- IP address: 192.168.0.102 et 192.168.0.103
- Subnet mask: 255.255.255.0
- Default gateway: 192.168.0.1
- Prefered DNS server: 8.8.8.8 (Google)
Une fonction très utile, lorsqu’on travaille sur la configuration de réseaux, est « ping », disponible sur tous les systèmes d’exploitation majeurs.
- Ouvrir un terminal (Mac) ou un Command Prompt (Windows)
- Taper « Ping <adresse IP de l’ordinateur que l’on veut tester> »
- Par exemple, si je veux m’assurer que mon ordinateur de contrôle voit bien les ordinateurs slaves (ordinateurs asservis) :
- Ouvrir un terminal
- Taper « Ping 192.168.0.102 »
- Enter
- On va alors voir si l’ordinateur répond ou pas. S’il répond, tout est beau, sinon, il y a un problème réseau!
- Répéter l’opération pour tous les ordinateurs du réseau
Mode contrôle à distance
Une fois MilluNode installé, il suffit de le démarrer sur chacun des ordinateurs auxiliaires (ou asservis) et de sélectionner Control Remotely, car nous allons les contrôler à partir du Mac Book Pro. MilluNode nous demande alors de nommer ces ordinateurs :
- MilluNode02
- MilluNode03
On ouvre ensuite Millumin sur l’ordinateur de programmation et de contrôle.
Limitations et possibles
Canevas
Dans Millumin, chaque MilluNode est associée à un canevas. Par conséquent, il n’est pas possible que deux MilluNode partagent un même canevas, ce qui fait que si l’on désire diffuser une même image séparée sur plusieurs MilluNode à la manière d’un videowall, ce n’est pas aussi simple qu’avec un serveur vidéo de type Watchout ou Pandora Box, où tous les ordinateurs auxiliaires partagent un canevas commun.
C’est une limitation relativement majeure, car c’est habituellement la raison pour laquelle on utilise ce type de serveur : pour être en mesure d’utiliser des ordinateurs supplémentaires afin d’augmenter la surface de notre canevas de création. Ceci dit, MilluNode peut certainement être utilisé à bon escient dans différents contextes.
Contexte #1
Connecter tous les écrans à un seul ordinateur sur lequel MilluNode est installé, et créer un canevas de la taille correspondante. Cette option peut être intéressante à utiliser lorsqu’on veut utiliser un seul ordinateur de diffusion et l’installer plus près des appareils vidéo (projecteurs, télévisions, LEDs) en ayant l’ordinateur de contrôle à la régie. Nous simplifions ainsi le câblage vidéo, qui est somme toute un problème récurrent dans toutes les productions.
Cette solution permet aussi d’utiliser un ordinateur Windows pour la diffusion, qui est plus facilement paramétrable et performant pour ce genre d’installation, tout en gardant le contrôle sur un ordinateur Mac, plus souvent disponible dans les salles de spectacle (à cause de Millumin et de QLab, notamment, qui sont compatibles avec Mac seulement).
Contexte #2
Fragmenter le média en sections pour ensuite les répartir entre les différents MilluNode. Cette solution est moins efficace en phase de laboratoire/création puisqu’elle impose la création des médias sans prévisualisation : il faut manuellement prendre le média, en mettre une copie séparée dans chacun des canevas et ensuite sélectionner la partie que l’on veut afficher dans l’un ou l’autre des écrans MilluNode en utilisant les paramètres de positionnement du média dans le canevas.
Timeline
À l’heure actuelle, MilluNode ne supporte d’aucune façon la lecture de Timeline, ni dans le Dashboard (tableau de bord), ni via un onglet Timeline. Autrement dit, il est possible uniquement de diffuser des médias via le Dashboard.
NDI
L'utilisation de NDI permet de contourner les deux limitations précédentes. Le NDI est un protocole de partage vidéo via réseau développé en premier lieu pour les studios de télévision, ce qui en fait un outil hautement professionnel et performant. Son utilisation pour des installations et des spectacles est par le fait même très fiable.
En résumé, il est possible d’obtenir un canevas commun entre plusieurs MilluNode en utilisant le protocole NDI. Cette approche permet aussi d'utiliser d'autres logiciels vidéo, tels que Resolume Arena et Mad Mapper, en tandem avec Millumin et MilluNode. Voici comment réaliser un tel projet :
Paramétrage de la sortie (output) dans Millumin
En plus des canevas pour chaque MilluNode, il faut créer un canevas supplémentaire avec la résolution totale scindée selon le nombre de MilluNode utilisé. Par exemple, pour nos tests, il s’agissait d’un MilluNode avec un écran et un second MilluNode avec deux écrans. La résolution de chacun des écrans était de 1920x1080. On obtient donc un canevas d’une résolution totale de 5760 x 1080 scindée en trois sections. Il faut ensuite assigner NDI à chacune des sorties. Le projet comporte donc trois canevas :
- MilluNode02 - Une sortie dans son écran
- MilluNode03 - Deux sorties, l'une dans chacun de ses deux écrans
- Contenu (notre espace de travail principal) - Trois sorties NDI :
Configuration des couches (layers) du Dashboard
Assigner les trois sources NDI de notre canevas, qui apparaissent maintenant dans l’onglet inputs de Millumin, aux layers correspondant à chacun des canevas MilluNodes. Dans le cas du MilluNode avec deux écrans, il faut au minimum un layer par écran et les repositionner conformément à leur position dans l’espace. Autrement dit, la couche nommée « Cour » du canevas MilluNode03 correspond à l’écran complètement à droite dans l’espace. Sa couche est par conséquent positionnée à droite du canevas. La couche intitulée « Centre » est, quant à elle, placée à gauche du canevas.
Envoi de contenu
Il suffit d’ajouter des médias dans le canevas Contenu pour qu’ils soient diffusés dans les différents MilluNode. En ce sens, il faut s’assurer que les sources NDI sont en tout temps activées et assignées à chacune des couches des MilluNodes lors de l’envoi de médias. Pour y arriver, il suffit d’étirer chacune des sources NDI à l’ensemble des colonnes de notre Dashboard.
En tandem avec d'autres logiciels
Pour ajouter des sources venant d’autres logiciels compatibles avec NDI, il suffit de faire la même chose, mais d’utiliser les inputs NDI de cet autre logiciel, ici Resolume Arena.
On peut donc, si on le veut, travailler simultanément avec Millumin et Resolume!
Inconvénients
Le désavantage de cette approche est que les ordinateurs MilluNode agissent finalement comme de simples convertisseurs NDI – HDMI, ce qui amène deux inconvénients majeurs :
1 - Étant donné que l’ensemble de la vidéo passe par le réseau, il faut que celui-ci soit très rapide et robuste.
2 - L’un des objectifs lorsqu’on utilise plusieurs ordinateurs est de partager leur puissance de calcul pour pouvoir gérer de plus grosses résolutions, ce que cette approche via le protocole NDI ne permet pas.
Finalement, l’idéal serait de pouvoir intégrer plusieurs MilluNode dans un seul canevas Millumin, et que le système gère le reste.
Mode autonome
Pour des installations fixes, il est possible d’utiliser un ordinateur MilluNode comme un lecteur multimédia puissant. Il suffit de monter son projet dans Millumin et de copier celui-ci sur l’ordinateur MilluNode, qui le joue alors de façon autonome. Après quelques tests, ce mode nous semble assez flexible et prometteur. Tous les éléments suivants fonctionnent bien :
- Lecture de médias
- Transitions de colonnes
- Effets
- Edge blending
- Mapping
- NDI
- Le NDI fonctionnant bien. Il serait donc possible de monter des compostions telles que vues plus haut, mais en mode autonome sur chacune des MilluNode, pour pouvoir utiliser celles-ci comme un serveur NDI utilisant Resolume Arena comme source, sans passer par Millumin. Ce qui est très intéressant pour Louis-Robert, qui n’utilise pas Millumin.
- Contrôle avec OSC. Les messages suivants sont possibles :
- /millunode/action/launchPreviousColumn
- /millunode/action/launchNextColumn
- /millunode/action/launchOrStopColumn
- /millunode/action/launchColumn
- /millunode/action/stopColumn
- /millunode/action/fullscreen
- /millunode/action/setIndexOfCurrentCanvas
En mode autonome, MilluNode donne aussi accès à certains éléments directement :
- Un système de cues (signaux) rudimentaire permettant d’opérer un spectacle.
- Un mapping de base de type quick corner.
Certains éléments ne fonctionnent cependant pas :
- Les transitions de clip
- Le contrôle Midi
Conclusion
Déjà dans sa version bêta (logiciel toujours en développement expérimental), MilluNode offre plusieurs possibilités supplémentaires pour la conception de serveurs et de lecteurs multimédias performants et flexibles pour les arts visuels et les arts vivants. Nous avons bien hâte de l’essayer dans une vraie production!