Interface de périphérique réseau - Network Device Interface

Network Device Interface ( NDI ) est une norme logicielle libre de droits développée par NewTek pour permettre aux produits compatibles vidéo de communiquer, de diffuser et de recevoir des vidéos haute définition sur un réseau informatique d'une manière de haute qualité et à faible latence qui est frame précis et adapté à la commutation dans un environnement de production en direct .

La technologie

NDI est conçu pour fonctionner sur Gigabit Ethernet , le codec NDI devant fournir une vidéo HD 1080i à des débits de données VBR généralement d'environ 100 Mbit/s.

Par défaut, NDI utilise le mécanisme de découverte mDNS ( Bonjour / Zeroconf ) pour annoncer les sources sur un réseau local, de sorte que les périphériques de réception NDI puissent automatiquement découvrir et proposer ces sources, bien que 2 autres modes de découverte (NDI Access, NDI Discovery Server) permettent pour les opérations sur les sous - réseaux et sans mDNS. Les sources sont créées à l'aide d'un port TCP sélectionné arbitrairement à partir d'une plage de ports sur l'hôte d'envoi NDI. Lorsqu'une source est demandée, une connexion TCP est établie sur le port approprié avec le récepteur NDI se connectant à l'expéditeur NDI. NDI 3.x dispose d'options pour utiliser la multidiffusion UDP ou la monodiffusion avec correction d'erreur directe (FEC) au lieu de TCP, et peut équilibrer la charge des flux sur plusieurs cartes réseau de contrôleurs d'interface réseau sans utiliser l' agrégation de liens . NDI 4.0 introduit les connexions multi-TCP.

NDI transporte la vidéo, l' audio multicanal non compressé et les métadonnées . Les messages de métadonnées peuvent être envoyés dans les deux sens, ce qui permet à l'expéditeur et au destinataire de s'envoyer des messages via la connexion avec des métadonnées arbitraires sous forme XML . Ce système de métadonnées directionnelles permet des fonctionnalités telles que les informations de décompte actives renvoyées aux sources pour comprendre qu'elles sont en ondes (programme / aperçu). NDI permet également aux expéditeurs de déterminer le nombre de récepteurs connectés, afin qu'ils puissent ignorer les traitements inutiles et l'utilisation de la bande passante du réseau lorsqu'aucun client récepteur NDI n'est connecté. Les récepteurs NDI peuvent choisir de se connecter à diverses combinaisons de flux, pour prendre en charge des éléments tels que les connexions audio uniquement ou uniquement les métadonnées où la vidéo n'est pas requise.

Le kit de développement logiciel (SDK) NDI est disponible pour Windows, Linux et macOS, et a également été porté sur iOS, tvOS, Android, Raspberry Pi et FPGA. Le SDK NDI standard est disponible via une licence propriétaire sans redevance. Le NDI Advanced SDK offre aux OEM un accès direct aux données compressées et à d'autres fonctionnalités, avec une licence commerciale.

Comparaison des protocoles vidéo IP courants

D'autres protocoles vidéo IP à utiliser dans la production vidéo professionnelle (plutôt que la vidéo IP utilisée pour la distribution aux utilisateurs finaux ) incluent SMPTE 2022 , SMPTE 2110 , ASPEN (largement remplacé par SMPTE 2110) et Sony NMI. Il existe de nettes différences dans la technologie utilisée par ces protocoles.

Protocole
Paramètre
NDI NDI HX NDI HX2 SMPTE 2022-6 SMPTE 2110 TREMBLE INM CDI
Transport TCP/UDP/Multi-TCP/UDP fiable UDP (TCP) TCP/UDP/Multi-TCP/UDP fiable UDP (RTP) UDP (RTP) UDP UDP UDP / SRD
Format d'image Taille / Aspect indépendant Taille / Aspect indépendant Taille / Aspect indépendant Formats SDI uniquement Taille / Aspect indépendant Taille / Aspect indépendant
Pointage Oui Oui Oui Non Non Non Non
Contrôle d'appareil bidirectionnel Oui Oui Oui Non Non Non Non
Proxy intégré Oui Oui Oui Non Non Non Non Non
Canal alpha intégré Oui Non Oui Non Oui Oui
Compression Codec NDI (SHQ 0/2/7) NDI|HX (H.264) H.264/H.265 RIEN SMPTE 2110-22 spec.( JPEG XS , mais sans s'y limiter) RIEN AUCUN / Codec LLVC RIEN
Lien Socket, Unicast / Multicast et FEC Unicast / Multicast Socket, Unicast / Multicast et FEC Multidiffusion Multidiffusion Multidiffusion Multidiffusion / ? SRD
Débit de données HD (1080i) ~100 Mbit/s 8–20 Mbit/s ~1–50 Mbit/s >1,5 Gbit/s >1,1 Gbit/s >1,5 Gbit/s >1,5 Gbit/s / jusqu'à 14:1 >1,5 Gbit/s
Emballage d'essence Paquets audio, de métadonnées et de trames vidéo discrets, connexion unique Connexions de type RTSP/RTP modifiées Paquets audio, de métadonnées et de trames vidéo discrets, connexion unique Flux binaire SDI brut en paquets Audio, vidéo et métadonnées discrets sur des connexions séparées avec des protocoles différents Plusieurs flux de transport MPEG Cadre aligné 2022-6 / LLVC Audio, vidéo et métadonnées discrets aux formats SMPTE2110
Infrastructure Gigabit / sans fil / multi-NIC à charge équilibrée / 10 Go Gigabit / sans fil Gigabit / sans fil 10 Go minimum 10 Go minimum 10 Go minimum Gigabit / 10 Go 100 Go EFA / libFabric
Découverte de services Bonjour (mDNS), NDI Access (manuel), Discovery Server (NDI4) automatique via le pilote HX Bonjour (mDNS), NDI Access (manuel), Discovery Server (NDI4) NMOS AMWA IS-04 NMOS JSON-RPC Plug & play (NDCP) RIEN
API Licence libre de droits, bibliothèques SDK pour Win (x86), Mac, Linux (x86 & ARM), iOS, référence FPGA Encodage matériel, décodage avec les bibliothèques NDI Envoyer avec NDI Advanced SDK, recevoir avec les bibliothèques NDI Norme SMPTE Norme SMPTE RDD SMPTE OPEN SOURCE

Histoire

NDI a été révélé publiquement par NewTek le 8 septembre 2015 et a été présenté à l'exposition de diffusion IBC à Amsterdam cette semaine-là. Le premier appareil montré utilisant NDI était le NewTek TriCaster qui a fourni un flux NDI à partir de chacune de ses entrées SDI ainsi que quatre flux de sortie de son mélangeur de vision. Le TriCaster pourrait également recevoir jusqu'à deux sources NDI d'autres appareils (augmenté à 12 dans les versions ultérieures et jusqu'à 44 dans la série IP de NewTek).

NewTek avait précédemment créé un prédécesseur de NDI appelé AirSend pour obtenir la vidéo de périphériques externes dans leurs produits TriCaster. AirSend avait été implémenté par un certain nombre de fournisseurs de générateurs de caractères (CG), dont Vizrt et Chyron . Afin d'introduire rapidement ces produits dans l'espace NDI, NewTek a créé un nouveau pilote pour remplacer le pilote AirSend existant, qui pourrait être installé sur ces appareils compatibles AirSend existants, les convertissant instantanément en appareils compatibles NDI sans aucune modification requise par le CG d'origine. vendeurs.

Un autre adopteur précoce de NDI était VMix , un mélangeur de vision basé sur Windows qui offre des entrées et des sorties NDI. Une augmentation significative de la base installée de NDI est survenue lorsque l'application de diffusion en direct XSplit a ajouté la prise en charge de NDI.

Plus tard en 2016, NewTek a fourni NDI 2.0 qui a ajouté des fonctionnalités, notamment la prise en charge de la découverte de services sur les sous-réseaux. En avril, Magewell a annoncé l'intégration transparente de ses périphériques de capture PCIe et USB, permettant l'accès à n'importe quelle source vidéo sur le réseau. Cette solution a créé l'un des scénarios de production vidéo de diffusion les plus efficaces possibles avec un choix de source illimité et une compatibilité omniprésente avec le système d'exploitation.

Le 12 juillet 2017, NewTek a annoncé NDI 3.0 qui a ajouté la multidiffusion, NDI|HX et d'autres nouvelles fonctionnalités, introduisant la prise en charge de caméras PTZ spécifiques avec des chipsets H.264 et un firmware mis à jour.

En avril 2018, lors du NAB Show, Microsoft a annoncé avoir ajouté la prise en charge NDI à Skype pour les créateurs de contenu. Parmi les autres annonces du NAB2018, citons NDI 3.5 et la nouvelle prise en charge NDI de fournisseurs, notamment EVS et Avid.

La version 3.4 de FFmpeg a ajouté la prise en charge des entrées et des sorties pour NDI lorsqu'il est facultativement compilé par l'utilisateur final dans une bibliothèque NewTek non open source. Cependant, il a été découvert plus tard que NewTek redistribuait des binaires précompilés de FFmpeg qui incorporaient leur bibliothèque non open source en violation de la licence publique générale GNU , ce qui a amené le projet FFmpeg à supprimer le support NDI de leur base de code en mars 2019.

En avril 2019, avant le NAB, NewTek a annoncé l'ajout du mode Multi-TCP à NDI 4.0, qui tirerait parti de l'accélération TCP matérielle présente dans le silicium, aidant les processeurs moins performants avec le transport NDI. NDI 4.0 a été expédié en septembre 2019 pour coïncider avec l'exposition IBC.

En juillet 2021, NDI 5 a été publié en ajoutant les fonctionnalités principales suivantes : transmission UDP fiable, prise en charge du serveur de découverte redondante, outils NDI 5 (NDI Bridge, NDI Remote, NDI Audio Direct, sortie FCP-X)

Version Publié Fonctionnalités/améliorations
1,0 avril 2016 Première version
2.0 septembre 2016 Prise en charge de sous-réseaux croisés via Access Manager, prise en charge de l'encodage ARM, SDK iOS
3.0 juillet 2017 Prise en charge NDI-HX, option de transport multidiffusion avec FEC, prise en charge PTZ.
3.5 juin 2018 Par défaut, la méthode de transport Unicast UDP avec FEC.
3.6 juillet 2018 Améliorations de la liaison au niveau des paquets.
3.7 septembre 2018 Améliorations de la découverte.
3.8 novembre 2018 Améliorations des performances, NDI Embedded SDK pour le développement FPGA.
4.0 Sept 2019 Mode de transport multi-TCP, prise en charge HDR 16 bits, enregistrement synchronisé natif, Discovery Server, NDI HX2
4.1 novembre 2019 Amélioration des performances.
4.5 Mars 2020 Nouvelle implémentation Multi-TCP, Latence réduite avec NDI-HX, Numéros de port prévisibles pour les règles de pare-feu, Améliorations de la qualité du codec.
4.6 novembre 2020 Peut prendre en charge l'encodage NDI-HX2 sur les PC utilisant NVENC.
5.0 juillet 2021 Transmission UDP fiable, prise en charge du serveur de découverte redondante, outils NDI 5 (pont, télécommande, sortie audio directe, FCP-X)

Utilisation dans les réseaux Wi-Fi et étendus

NDI a été conçu pour fonctionner sur des réseaux locaux gigabit de bonne qualité utilisant les technologies TCP et Bonjour ( mDNS ). Afin de fonctionner sur des sous-réseaux qui ne passent pas le mDNS, NDI prend en charge un mécanisme connu sous le nom d'accès NDI qui permet la saisie manuelle de l'adresse IP des machines sur d'autres sous-réseaux pouvant exécuter des sources NDI.

Certains utilisateurs de NDI ont exécuté le protocole sur des connexions fibre jusqu'à 15 km, bien que l'utilisation du protocole TCP par NDI le rende moins adapté aux connexions longue distance à latence élevée en raison de facteurs tels que le produit de retard de bande passante et la récupération de perte de paquets TCP . Les versions ultérieures de NDI ont introduit différents protocoles de transport, notamment UDP, MultiTCP et UDP fiable (QUIC) qui offrent différentes caractéristiques de réseau. NDI|HX utilise un débit de données inférieur, ce qui facilite son utilisation dans les connexions à bande passante limitée.

Utilisation dans une infrastructure basée sur le cloud

NDI est également utilisé dans les systèmes de production basés sur le cloud, avec ses transmissions vidéo compressées et monodiffusion qui conviennent aux services basés sur le cloud comme AWS et Azure. Lorsqu'il fonctionne dans des environnements cloud, le service NDI Discovery fournit une solution aux restrictions de multidiffusion communes aux plates-formes cloud.

Prise en charge de l'architecture du processeur

NDI, lorsqu'il s'exécute sur des architectures x86, nécessite des processeurs qui incluent le jeu d' instructions SSSE3 . La plupart des conceptions de processeurs Intel à partir de 2006 ont ce jeu d'instructions, AMD a ajouté la prise en charge à partir de 2011. Bien que ce ne soit pas une exigence, NDI tirera parti des jeux d'instructions AVX ( Advanced Vector Extensions ) et AVX2 pour des performances supplémentaires.

NDI peut fonctionner sur des architectures CPU 32 bits ou 64 bits, bien que les performances soient augmentées lors de l'utilisation de 64 bits.

NDI 4.x et les versions antérieures avaient une prise en charge limitée d'ARM, offrant généralement une prise en charge de l'encodage uniquement. La sortie de NDI 5 apporte une prise en charge complète de l'encodage et du décodage sur les processeurs ARM qui incluent les instructions Neon. Cela inclut les processeurs Apple Silicon.

Les périphériques NDI|HX sont généralement à transmission uniquement et basés sur des plates-formes propriétaires avec des puces d'encodeur H.264. Des exemples de périphériques NDI|HX sont les caméras PTZ et le boîtier de conversion NDI Connect Spark SDI vers NDI|HX. Le flux NDI lui-même est formé à la fin de la consommation de flux via le pilote NDI|HX spécifique à la plate-forme, présentant les mêmes données non compressées au logiciel d'application consommant la source NDI, indépendamment du matériel et de la compression de la source HX d'origine. NDI|HX2 est une implémentation plus pure, prenant en charge la compression H.264 ou HEVC, et permet des fonctionnalités NDI supplémentaires.

Avec NDI 4.0, NewTek a annoncé l'ajout d'un mode de transport Multi-TCP . Cela tire parti de l'accélération matérielle TCP du silicium qui aide les processeurs moins performants à gérer une charge réseau élevée, contrairement à UDP qui ne bénéficie pas de l'accélération matérielle.

Métadonnées et extensions de la spécification NDI

NDI prend en charge les métadonnées arbitraires sous forme de blocs XML, intégrés dans des trames vidéo et audio, ainsi que des trames de métadonnées autonomes. Le contenu de ces blocs de métadonnées forme 3 familles.

  1. Métadonnées internes utilisées par NDI de manière invisible. Ces messages sont utilisés pour la connectivité et certaines autres tâches fondamentales comme Tally. Ils sont généralement invisibles pour les clients NDI.
  2. Métadonnées publiques définies. Ces messages incluent des éléments tels que le protocole NDI PTZ. Ils sont définis par NewTek dans le cadre du SDK NDI.
  3. Schémas de métadonnées tiers. Ces messages sont implémentés de la même manière que les métadonnées NDI définies, mais le contenu est basé sur des conceptions tierces.

Les références

Liens externes