Utiliser le streaming NDI ou Spout
Cette page indique comment utiliser le protocole NDI pour créér et recevoir des flux vidéo NDI et/ou Spout.
Les deux process sont exactement les mêmes.
MindDev offre la possibiltié de créer et de recevoir des flux compatibles avec le protocole NDI ou Spout
NDI
Créer un flux NDI
Il est possible de créer un flux NDI de la visualisation courrante de la scène. Pour ce faire, il convient d'ajouter l'entité NDI Sender
, idéalement au niveau du protocole.
Seul le nom de l'entité est important ici, car ce nom sera utilisé par le serveur NDI pour nommer le flux créé.
Nom de flux NDI
Lorsque l'on créer un flux NDI, le nom de l'entité est utilisé. Ainsi, le nom du flux devient NOM_MACHINE (NOM_ENTITE)
Par défaut, le flux utilisera la caméra par défaut. Dans le cas d'un système de projection à plusieurs caméras activées en meême temps, il est possible de créer un flux à partir d'une caméra spécifique par son nom.
Flux NDI lié a une caméra spécifique
Dans le cas ou le flux NDI doit être lié à une caméra, il faut renseigner le nom de la caméra. Ce nom peut être partiel, le logiciel trouvera automatiquement la caméra dont le nom contient la valeur du paramètre.
Recevoir un flux NDI
La réception de flux NDI est un peu plus complexe que l'émission de flux.
L'entité NDI Receiver
permet de recevoir un flux et de stocker ce flux dans une texture containeur ("Render Texture"). Cette entité dispose :
- D'un paramètre de nom de serveur
- D'une render texture stockant le flux vidéo
Recevoir plusieurs flux NDI
Il est possible de recevoir plusieurs flux NDI Pour chaque flux NDI, il convient d'ajouter une entité NDI Receiver
.
Nom du flux NDI à recevoir
Le paramètre de nom de serveur NDI de l'entité de reception n'est qu'une chaine de recherche. Le premier flux trouvé dont le nom contient le nom paramétré sera utilisé. Il n'est donc pas nécessaire de renseigner le nom complet
Enregistrement du flux vidéo
L'entité NDI Receiver n'enregistre pas le flux vidéo, elle sert juste a communiquer avec un serveur NDI et à récuperer l'information. L'image doit être utilisée en temps réel pour que le flux soit utile.
Spout
Créer un flux Spout
Il est possible de créer un flux Spout de la visualisation courrante de la scène. Pour ce faire, il convient d'ajouter l'entité Spout Sender
, idéalement au niveau du protocole.
Seul le nom de l'entité est important ici, car ce nom sera utilisé par le serveur Spout pour nommer le flux créé.
Nom de flux Spout
Lorsque l'on créer un flux Spout, le nom de l'entité est utilisé.
Par défaut, le flux utilisera la caméra par défaut. Dans le cas d'un système de projection à plusieurs caméras activées en meême temps, il est possible de créer un flux à partir d'une caméra spécifique par son nom.
Flux NDI lié à une caméra spécifique
Dans le cas ou le flux NDI doit être lié à une caméra, il faut renseigner le nom de la caméra. Ce nom peut être partiel, le logiciel trouvera automatiquement la caméra dont le nom contient la valeur du paramètre.
Recevoir un flux Spout
La réception de flux Spout est un peu plus complexe que l'émission de flux.
L'entité Spout Receiver
permet de recevoir un flux et de stocker ce flux dans une texture containeur ("Render Texture"). Cette entité dispose :
- D'un paramètre de nom de serveur
- D'une render texture stockant le flux vidéo
Recevoir plusieurs flux Spout
Il est possible de recevoir plusieurs flux Spout Pour chaque flux Spout, il convient d'ajouter une entité Spout Receiver
.
Nom du flux Spout à recevoir
Le paramètre de nom de serveur Spout de l'entité de reception n'est qu'une chaine de recherche. Le premier flux trouvé dont le nom contient le nom paramétré sera utilisé. Il n'est donc pas nécessaire de renseigner le nom complet
Enregistrement du flux vidéo
L'entité Spout Receiver n'enregistre pas le flux vidéo, elle sert juste a communiquer avec un serveur Spout et à récuperer l'information. L'image doit être utilisée en temps réel pour que le flux soit utile.
Utilisation du flux vidéo
Le flux vidéo est stocké sous forme de Texture de rendu. Il est possible d'utiliser cette texture de deux manières :
- En application sur un objet 3D
- En application sur une image 2D
Dans les deux cas d'utilisation, une configuration spéciale doit être mise en place pour être fonctionnelle. En effet, concernant les objets 3D, ceux-ci dispose de matériaux, hors, les matérieux conventionnels ne sont pas compatible avec une utilisation de Render Texture
. Il convient d'utiliser les matériaux compatibles avec les Render Texture
:
- Albedo Render texture material (soumis aux caractéristiques de luminosité de la scène)
- Unlit et Unlit Color Render Texture Material (non soumis à la luminosité ambiante de la scène)
Dans le cas des images 2D, il convient d'utiliser le composant 2D de type Render Texture Image
et non l'image conventionnelle.
Dans tous les cas, les objets créés nécessitent un lien vers l'entité Render Texture
. Les paramètres permettent d'établir ce lien.