Configuration multi-caméras
GoCam de FLYOS-FAST v1.4.0 prend en charge le raccordement de plusieurs caméras UVC sur le même hôte. Cet article explique la méthode de configuration complète en prenant l'exemple de deux caméras ; il en va de même pour trois ou quatre caméras.
La prise en charge multi-caméras dépend de GoCam et n'est disponible qu'à partir de FLYOS-FAST v1.4.0. Pour les machines utilisant Crowsnest, veuillez consulter Connexion et utilisation de la caméra ; pour l'utilisation de base d'une seule caméra GoCam, veuillez consulter Service de caméra GoCam.
Ports et adresses d'accès
Le port et le chemin web de chaque caméra sont en correspondance univoque ; le préfixe /webcamN/ est préconfiguré par nginx en usine et ne nécessite aucune modification. Cliquez sur l'icône à droite de l'adresse pour la copier :
| Voie et port | Flux vidéo en direct | Capture instantanée |
|---|---|---|
Voie 1 · 8080 | Loading... | Loading... |
Voie 2 · 8081 | Loading... | Loading... |
Voie 3 · 8082 | Loading... | Loading... |
Voie 4 · 8083 | Loading... | Loading... |
La règle est la suivante : le port de la voie N est 8080 + (N - 1), le chemin web est /webcamN/, où le chiffre est omis pour la voie 1 et s'écrit /webcam/.
?action=stream et ?action=snapshot sont des écritures compatibles avec mjpg-streamer de GoCam, respectivement équivalentes à /stream et /snapshot ; il s'agit d'un comportement intégré à l'interface, et non d'options à configurer.
Connexion des caméras
Pour le choix des caméras, le mode de câblage et les exigences UVC sans pilote, veuillez consulter Connexion et utilisation de la caméra.
Dans un scénario multi-caméras, chaque caméra doit être raccordée à un port USB différent de l'hôte, sans passer par le même concentrateur non alimenté ; avant de brancher ou de débrancher une caméra, veuillez éteindre complètement l'imprimante et couper l'alimentation.
Étape 1 : Ouvrir la configuration
Pour la méthode d'ouverture du fichier de configuration et de consultation des nœuds de périphérique (ID de caméra) dans Fluidd, veuillez consulter Ouvrir la configuration.
Dans un scénario multi-caméras, chaque voie doit renseigner le nœud de capture de la caméra (video-index0), et non pointer vers le nœud metadata ; fixez-le en fonction du port USB physique afin d'éviter qu'un changement de numérotation des nœuds après redémarrage ne provoque une défaillance.
Étape 2 : Rédiger la configuration multi-voies
Le fichier de configuration se trouve à l'emplacement suivant :
/usr/share/printer_data/config/gocam.conf
Exemple de configuration à deux voies (device fixé via by-path, résolution renseignée selon les mesures réelles) :
[cam 1]
port: 8080
device: /dev/v4l/by-path/platform-5311000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5
[cam 2]
port: 8081
device: /dev/v4l/by-path/platform-5101000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5
| Paramètre | Description |
|---|---|
port | Port HTTP écouté par cette voie, ne doit pas être répété entre les voies |
device | Chemin du nœud de capture (video-index0) de cette caméra |
resolution | Résolution réellement prise en charge par la caméra, au format largeurxhauteur |
max_fps | Fréquence d'images maximale, il est recommandé de ne pas dépasser la valeur énumérée par la caméra |
quality | Qualité MJPEG, valeur de 1 à 31, plus la valeur est petite, meilleure est la qualité et plus élevée est la bande passante |
v4l2ctl | Facultatif, paramètres UVC ; les paramètres enregistrés depuis la page de gestion sont écrits dans cet élément |
ffmpeg_flags | Facultatif, paramètres FFmpeg |
Les caméras ne prenant en charge que le format YUYV nécessitent un encodage logiciel en MJPEG par l'hôte, ce qui entraîne une charge CPU élevée ; les caméras prenant en charge MJPG peuvent être transmises directement, avec une consommation CPU quasi nulle. Si les deux voies ne prennent en charge que YUYV, il est recommandé de commencer par 640x480 à 15 images/s ; si une voie prend en charge MJPG, sa résolution peut être augmentée individuellement.
Étape 3 : Ajouter des panneaux de caméra dans l'interface web
Après avoir configuré GoCam, il faut également enregistrer les caméras dans Moonraker pour que Fluidd / Mainsail affichent les panneaux.
Dans Fluidd, ouvrez Paramètres → Caméras, et vérifiez que les deux entrées sont renseignées respectivement :
| Entrée | Adresse du flux vidéo | Adresse de capture |
|---|---|---|
| Voie 1 | Loading... | Loading... |
| Voie 2 | Loading... | Loading... |
- La deuxième voie est encore écrite en
/webcam/: les deux panneaux afficheront l'image de la même caméra. La voie N doit utiliser/webcamN/. - Les entrées ajoutées dans l'interface web sont stockées dans la base de données de Moonraker (
sourcevautdatabase) ; modifier uniquementmoonraker.confne prendra pas effet, il faut modifier dans l'interface. - L'interface
/server/webcams/itemde Moonraker ne prend en charge que la consultation, l'ajout et la suppression, pas la modification ; veuillez également effectuer les opérations dans l'interface.
Si vous devez ajouter des entrées via le fichier de configuration (sans modifier les entrées existantes dans la base de données), vous pouvez ajouter dans moonraker.conf :
[webcam cam2]
enabled: true
service: mjpegstreamer-adaptive
target_fps: 15
stream_url: /webcam2/?action=stream
snapshot_url: /webcam2/?action=snapshot
Questions fréquentes
| Phénomène | Cause possible | Traitement |
|---|---|---|
La page affiche NO SIGNAL, frames reste à 0 | device pointe vers le nœud metadata, ou resolution dépasse les capacités de la caméra | Vérifiez avec --list-formats-ext, utilisez video-index0 |
| Les deux panneaux affichent exactement la même image | L'URL de la deuxième voie est encore écrite en /webcam/ | Remplacez par /webcam2/?action=stream |
| Une voie devient inopérante après redémarrage | Le numéro /dev/videoN change selon l'ordre de branchement | Remplacez device par /dev/v4l/by-path/...-video-index0 |
| Le port de la deuxième voie est inaccessible | [cam 2] n'est pas configuré, ou conflit avec le port d'un autre service | Vérifiez l'écoute avec ss -lntp | grep 8081 |
| Image saccadée, charge de l'hôte élevée | Encodage logiciel YUYV combiné à une résolution et une fréquence d'images élevées | Réduisez la résolution ou la fréquence d'images, ou utilisez une caméra prenant en charge MJPG |