# Intégration de présentations (ZowieBox)

Un-e présentateur-ice veut projeter une présentation, soit depuis le PC à disposition, soit depuis le sien. On veut récupérer les diapos :

- sur l’écran de projection (écran télé) ;
- sur le vidéoprojecteur (salle des mariages, mais en plus grand) ;
- sur le stream Peertube

### La solution

Nous avons choisi d'utiliser une ZowieBox ([voir ici](https://zowietek.com/product/4k-video-streaming-encoder-decoder/)).

Connectée au réseau, la ZowieBox permet, à partir d'une entrée HDMI, d'obtenir plusieurs flux en sortie sur le réseau. Une sortie HDMI permet également de récupérer le signal vidéo en direct.

### Schéma

<div class="diagram" id="bkmrk-text-is-not-svg---ca">[![Capture d’écran du 2025-06-20 18-24-42.png](https://documentation.echirolles.fr/uploads/images/gallery/2025-06/scaled-1680-/capture-decran-du-2025-06-20-18-24-42.png)](https://documentation.echirolles.fr/uploads/images/gallery/2025-06/capture-decran-du-2025-06-20-18-24-42.png)</div>### ZowieBox

La ZowieBox prend une IP en DHCP. Elle réagit bien à un débranchement/rebranchement de l’HDMI d’entrée. Elle exporte :

- une sortie pass-through HDMI, qui réagit également bien au débranchement/rebranchement de l’HDMI d’entrée comme de sortie ;
- des flux rtsp, qui fonctionnent bien, mais ont quelques soucis : 
    - lorsque le flux est interrompu (veille de l’ordinateur de présentation, HDMI débranché, …), le flux est **coupé**. Le comportement des lecteurs de flux diffère : conservation de la dernière image, quitter, … Pas extrêmement pratique. On ne peut pas non plus se connecter au flux tant qu’aucun écran ne projette dessus.
    - après branchement d’un flux, il faut quelques secondes avant que le flux ne revienne. Si on s’y connecte trop vite, il y a une latence assez pénible (quelques 100ms) qui persiste dans le temps, alors que tout se passe beaucoup mieux si on s’y connecte quelques secondes après.
- un flux NDI. Protocole propriétaire, mais qui marche globalement mieux.

Les paramètres du flux d’entrée (résolution + fréquence) sont repris pour l’encodeur *à chaque branchement d’HDMI d’entrée*. Une fréquence à 60Hz donne une mauvaise qualité d’image (plein d’artefacts) ; il faut baisser cette fréquence à 25 ou 30Hz.

### PC Zorin de projection

On utilise [obs](https://obsproject.com/) pour afficher le flux NDI. L’installation n’est pas évidente avec NDI.

- installer obs-studio :

```bash
sudo apt install obs-studio  # version 30.2.3 à cette date
```

<div class="toolbar" id="bkmrk--1"><div class="toolbar-item">  
</div></div>- installer libndi **en version 5** : aujourd’hui (2025-02-17), la version 6 n’arrive pas à décoder un flux NDI correctement. Récupérer [libndi-get.sh](https://github.com/DistroAV/DistroAV/blob/master/CI/libndi-get.sh), puis

```bash
$EDITOR libndi-get.sh  # modifier la ligne 4, v5 -> v6
sudo bash ./libndi-get.sh  # installer
```

<div class="toolbar" id="bkmrk--2"><div class="toolbar-item">  
</div></div>- installer DistroAV aka obs-ndi. Récupérer le `.deb` dans les [releases GitHub](https://github.com/DistroAV/DistroAV/releases/) (en version 4.13.0 en février 2025), puis

```bash
sudo apt install ./obs-ndi-*.deb
```

<div class="toolbar" id="bkmrk--3"><div class="toolbar-item">  
</div></div>- Lancer OBS. Ajouter une source NDI (appelée eg. « ZowieBox »), sélectionner la bonne source (le PC doit être dans le même VLAN que la zowiebox).
- Mettre la source en plein écran : clic droit sur la source, `Projecteur plein écran (source)` -&gt; `Moniteur ...`

### Pendant les présentations

- à chaque débranchement du câble HDMI : remettre en 30Hz l’encodeur de la ZowieBox (à la main…)
- gérer OBS comme pour les diffusions du conseil
- Si ça plante, essayer de : 
    - Vérifier tous les branchements
    - Redémarrer OBS et la projection plein écran
    - Redémarrer la ZowieBox (reboot électrique) (1 min de boot environ ?)
    - Redémarrer les ordinateurs

<p class="callout info">Auteur original de cette documentation : [Philippe Le Brouster](https://www.linkedin.com/in/philippe-le-brouster-24a475161/).</p>