Netzwerkgeräteschnittstelle - Network Device Interface

Network Device Interface ( NDI ) ist ein gebührenfreier Softwarestandard, der von NewTek entwickelt wurde, um es videokompatiblen Produkten zu ermöglichen, hochauflösendes Video über ein Computernetzwerk in hoher Qualität und mit geringer Latenz ( Frame) zu kommunizieren, zu liefern und zu empfangen präzise und geeignet zum Umschalten in einer Live- Produktionsumgebung .

Technologie

NDI ist für den Betrieb über Gigabit-Ethernet ausgelegt , wobei der NDI-Codec voraussichtlich 1080i HD-Video mit VBR-Datenraten von typischerweise etwa 100 Mbit/s liefert.

Standardmäßig verwendet NDI den mDNS-Erkennungsmechanismus ( Bonjour / Zeroconf ), um Quellen in einem lokalen Netzwerk anzukündigen, sodass NDI-Empfangsgeräte diese Quellen automatisch erkennen und anbieten können, obwohl 2 andere Erkennungsmodi (NDI-Zugriff, NDI-Erkennungsserver) zulassen für subnetzübergreifende Operationen und ohne mDNS. Quellen werden unter Verwendung eines willkürlich ausgewählten TCP-Ports aus einer Reihe von Ports auf dem NDI-Sendehost erstellt. Wenn eine Quelle angefordert wird, wird eine TCP-Verbindung auf dem entsprechenden Port aufgebaut, wobei sich der NDI-Empfänger mit dem NDI-Sender verbindet. NDI 3.x hat Optionen UDP - Multicast oder Unicast mit verwenden Vorwärtsfehlerkorrektur (FEC) anstelle von TCP und kann laden Gleichgewicht Ströme über mehrere Netzwerkschnittstellen - Controller NICs ohne Verwendung Link Aggregation . NDI 4.0 führt Multi-TCP-Verbindungen ein.

NDI überträgt Video, unkomprimiertes Mehrkanal- Audio und Metadaten . Metadatennachrichten können in beide Richtungen gesendet werden, so dass sich Sender und Empfänger über die Verbindung mit beliebigen Metadaten in XML- Form gegenseitig benachrichtigen können . Dieses direktionale Metadatensystem ermöglicht Funktionen wie aktive Tally-Informationen, die an Quellen zurückgesendet werden, um zu verstehen, dass sie auf Sendung sind (Programm / Vorschau). NDI ermöglicht es Sendern auch, die Anzahl der verbundenen Empfänger zu bestimmen, sodass sie unnötige Verarbeitungsvorgänge und die Nutzung der Netzwerkbandbreite überspringen können, wenn keine NDI-Empfänger-Clients verbunden sind. NDI-Empfänger können sich für verschiedene Kombinationen von Streams entscheiden, um Dinge wie reine Audio- oder reine Metadatenverbindungen zu unterstützen, wenn kein Video erforderlich ist.

Das NDI Software Development Kit (SDK) ist für Windows, Linux und macOS verfügbar und wurde auch auf iOS, tvOS, Android, Raspberry Pi und FPGA portiert. Das Standard-NDI-SDK ist über eine gebührenfreie proprietäre Lizenz erhältlich. Das NDI Advanced SDK bietet OEMs mit einer kommerziellen Lizenz direkten Zugriff auf und von komprimierten Daten und anderen Funktionen.

Vergleich gängiger IP-Videoprotokolle

Andere IP-Videoprotokolle zur Verwendung in der professionellen Videoproduktion (anstelle von IP-Video zur Verteilung an Endbenutzer ) umfassen SMPTE 2022 , SMPTE 2110 , ASPEN (weitgehend ersetzt durch SMPTE 2110) und Sony NMI. Es gibt deutliche Unterschiede in der von diesen Protokollen verwendeten Technologie.

Protokoll
Parameter
NDI NDI HX NDI HX2 SMPTE 2022-6 SMPTE 2110 ESPE NMI CDI
Transport TCP/UDP/Multi-TCP/Zuverlässiges UDP UDP (TCP) TCP/UDP/Multi-TCP/Zuverlässiges UDP UDP (RTP) UDP (RTP) UDP UDP UDP / SRD
Bildformat Größe/Aspekt unabhängig Größe/Aspekt unabhängig Größe/Aspekt unabhängig Nur SDI-Formate Größe/Aspekt unabhängig Größe/Aspekt unabhängig
Übereinstimmen Jawohl Jawohl Jawohl Nein Nein Nein Nein
Bidirektionale Gerätesteuerung Jawohl Jawohl Jawohl Nein Nein Nein Nein
Integrierter Proxy Jawohl Jawohl Jawohl Nein Nein Nein Nein Nein
Integrierter Alphakanal Jawohl Nein Jawohl Nein Jawohl Jawohl
Kompression NDI-Codec (SHQ 0/2/7) NDI|HX (H.264) H.264/H.265 KEINER SMPTE 2110-22 spec. ( JPEG XS , aber nicht beschränkt auf) KEINER KEINE / LLVC-Codec KEINER
Verbindung Socket, Unicast / Multicast und FEC Unicast / Multicast Socket, Unicast / Multicast und FEC Multicast Multicast Multicast Multicast / ? SRD
HD (1080i) Datenrate ~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 / bis zu 14:1 >1,5 Gbit/s
Essenzverpackung Diskrete Audio-, Metadaten- und Video-Frame-Pakete, Einzelverbindung Modifizierte Verbindungen vom Typ RTSP/RTP Diskrete Audio-, Metadaten- und Video-Frame-Pakete, Einzelverbindung Paketisierter roher SDI-Bitstream Diskrete Audio-, Video- und Metadaten auf separaten Verbindungen mit unterschiedlichen Protokollen Mehrere MPEG-Transportströme Rahmen ausgerichtet 2022-6 / LLVC Diskrete Audio-, Video- und Metadaten im SMPTE2110-Format
Infrastruktur Gigabit / drahtlos / Multi-NIC mit Lastausgleich / 10 GBit Gigabit / drahtlos Gigabit / drahtlos Mindestens 10 GBit Mindestens 10 GBit Mindestens 10 GBit Gigabit / 10 GBit 100GBit EFA / libFabric
Service-Erkennung Bonjour (mDNS), NDI-Zugriff (manuell), Discovery-Server (NDI4) automatisch über HX-Treiber Bonjour (mDNS), NDI-Zugriff (manuell), Discovery-Server (NDI4) NMOS AMWA IS-04 NMOS JSON-RPC Plug & Play (NDCP) KEINER
API Royalty-free Lizenz, SDK-Bibliotheken für Win (x86), Mac, Linux (x86 & ARM), iOS, FPGA-Referenz Hardware-Kodierung, Dekodierung mit NDI-Bibliotheken Mit NDI Advanced SDK senden, mit NDI-Bibliotheken empfangen SMPTE-Standard SMPTE-Standard SMPTE-RDD OPEN SOURCE

Geschichte

NDI wurde am 8. September 2015 von NewTek öffentlich bekannt gegeben und in dieser Woche auf der IBC-Rundfunkausstellung in Amsterdam demonstriert. Das erste Gerät, das mit NDI gezeigt wurde, war der NewTek TriCaster, der einen NDI-Feed von jedem seiner SDI-Eingänge sowie vier Ausgabe-Feeds von seinem Bildmischer lieferte. Der TriCaster kann auch bis zu zwei NDI-Quellen von anderen Geräten empfangen (in späteren Versionen auf 12 und in der IP-Serie von NewTek auf bis zu 44 erhöht).

NewTek hatte zuvor einen Vorgänger von NDI namens AirSend entwickelt, um Videos von externen Geräten in ihre TriCaster-Produkte zu übertragen. AirSend wurde von einer Reihe von Anbietern von Zeichengeneratoren (CG) implementiert, darunter Vizrt und Chyron . Um diese Produkte schnell in den NDI-Bereich zu bringen, hat NewTek einen neuen Treiber erstellt, der den vorhandenen AirSend-Treiber ersetzt, der auf diesen vorhandenen AirSend-kompatiblen Geräten installiert werden kann und sie sofort in NDI-kompatible Geräte umwandelt, ohne dass die ursprüngliche CG geändert werden muss Anbieter.

Ein weiterer früher Anwender von NDI war VMix , ein Windows-basierter Bildmischer, der NDI-Ein- und Ausgänge bietet. Ein erheblicher Anstieg der installierten NDI-Basis kam zustande, als die Live-Streaming-Anwendung XSplit Unterstützung für NDI hinzufügte.

Später im Jahr 2016 lieferte NewTek NDI 2.0 mit zusätzlichen Funktionen, einschließlich der Unterstützung für die Diensterkennung über Subnetze hinweg. Im April kündigte Magewell die nahtlose Integration seiner PCIe- und USB-Capture-Geräte an, die den Zugriff auf jede Videoquelle im Netzwerk ermöglicht. Diese Lösung schuf eines der effizientesten Broadcast-Videoproduktionsszenarien mit unbegrenzter Quellenauswahl und allgegenwärtiger Betriebssystemkompatibilität.

Am 12. Juli 2017 kündigte NewTek NDI 3.0 an, das Multicast, NDI|HX und andere neue Funktionen hinzufügte und Unterstützung für bestimmte PTZ-Kameras mit H.264-Chipsätzen und aktualisierter Firmware einführte.

Im April 2018 gab Microsoft auf der NAB Show bekannt, dass sie Skype for Content Creators um NDI-Unterstützung erweitert haben. Zu den weiteren Ankündigungen auf der NAB2018 gehörten NDI 3.5 und neue NDI-Unterstützung von Anbietern wie EVS und Avid.

Version 3.4 von FFmpeg fügte Eingabe- und Ausgabeunterstützung für NDI hinzu, wenn sie optional vom Endbenutzer zu einer nicht-Open-Source-NewTek-Bibliothek kompiliert wurde. Später stellte sich jedoch heraus, dass NewTek vorkompilierte Binärdateien von FFmpeg weitervertrieb, die ihre Nicht-Open-Source-Bibliothek unter Verletzung der GNU General Public License enthielten , was dazu führte, dass das FFmpeg-Projekt im März 2019 die NDI-Unterstützung aus seiner Codebasis entfernte.

Im April 2019, vor der NAB, kündigte NewTek die Hinzufügung des Multi-TCP-Modus zu NDI 4.0 an, der Berichten zufolge die in Silizium vorhandene Hardware-TCP-Beschleunigung nutzt und Prozessoren mit niedrigeren Spezifikationen beim NDI-Transport unterstützt. NDI 4.0 wurde im September 2019 zeitgleich mit der IBC-Messe ausgeliefert.

Im Juli 2021 wurde NDI 5 mit den folgenden Hauptfunktionen veröffentlicht: Zuverlässige UDP-Übertragung, Unterstützung für redundante Erkennungsserver, NDI 5-Tools (NDI Bridge, NDI Remote, NDI Audio Direct, FCP-X-Ausgang)

Ausführung Freigegeben Funktionen/Erweiterungen
1.0 April 2016 Erstveröffentlichung
2.0 September 2016 Subnetzübergreifende Unterstützung über Access Manager, ARM-Codierungsunterstützung, iOS SDK
3.0 Juli 2017 NDI-HX-Unterstützung, Option für Multicast-Transport mit FEC, PTZ-Unterstützung.
3.5 Juni 2018 Standardmäßig ist die UDP-Transportmethode Unicast mit FEC.
3.6 Juli 2018 Verbesserungen beim Bonding auf Paketebene.
3.7 September 2018 Erkennungsverbesserungen.
3.8 Nov. 2018 Leistungsverbesserungen, NDI Embedded SDK für die FPGA-Entwicklung.
4.0 September 2019 Multi-TCP-Transportmodus, HDR 16-Bit-Unterstützung, Native synchronisierte Aufzeichnung, Discovery Server, NDI HX2
4.1 November 2019 Leistungsverbesserungen.
4.5 März 2020 Neue Multi-TCP-Implementierung, Geringere Latenz mit NDI-HX, Vorhersagbare Portnummern für Firewall-Regeln, Verbesserungen der Codec-Qualität.
4.6 Nov. 2020 Kann die NDI-HX2-Codierung auf PCs mit NVENC unterstützen.
5.0 Juli 2021 Zuverlässige UDP-Übertragung, Unterstützung für redundante Erkennungsserver, NDI 5-Tools (Bridge, Remote, Audio Direct, FCP-X-Ausgabe)

Verwendung in Wi-Fi und Weitverkehrsnetzen

NDI wurde entwickelt, um in hochwertigen lokalen Gigabit-Netzwerken mit TCP- und Bonjour- ( mDNS )-Technologien zu arbeiten. Um über Subnetze hinweg zu arbeiten, die mDNS nicht passieren, unterstützt NDI einen als NDI-Zugriff bekannten Mechanismus, der die manuelle Eingabe der IP-Adresse von Maschinen in anderen Subnetzen ermöglicht, die möglicherweise NDI-Quellen ausführen.

Einige NDI-Anwender haben das Protokoll über Glasfaserverbindungen mit einer Länge von bis zu 15 km ausgeführt, obwohl die Verwendung des TCP-Protokolls durch NDI es aufgrund von Faktoren wie dem Bandbreitenverzögerungsprodukt und der Wiederherstellung von TCP-Paketverlusten für Langstreckenverbindungen mit hoher Latenz weniger geeignet macht . Spätere Versionen von NDI führten verschiedene Transportprotokolle ein, darunter UDP, MultiTCP und zuverlässiges UDP (QUIC), die unterschiedliche Netzwerkeigenschaften bieten. NDI|HX verwendet eine niedrigere Datenrate, was die Verwendung in bandbreitenbegrenzten Verbindungen erleichtert.

Einsatz in Cloud-basierter Infrastruktur

NDI wird auch in Cloud-basierten Produktionssystemen verwendet, da sich komprimierte Video- und Unicast-Übertragungen für Cloud-basierte Dienste wie AWS und Azure eignen. Beim Betrieb in Cloud-Umgebungen bietet der NDI Discovery-Dienst eine Lösung für Multicast-Einschränkungen, die bei Cloud-Plattformen üblich sind.

Unterstützung der CPU-Architektur

NDI erfordert bei der Ausführung auf x86-Architekturen CPUs, die den SSSE3- Befehlssatz enthalten. Die meisten Intel-CPU-Designs ab 2006 verfügen über diesen Befehlssatz, AMD fügte ab 2011 Unterstützung hinzu. Obwohl dies keine Voraussetzung ist, nutzt NDI die Vorteile von Advanced Vector Extensions (AVX) und AVX2- Befehlssätzen für zusätzliche Leistung.

NDI kann auf 32-Bit- oder 64-Bit-CPU-Architekturen ausgeführt werden, obwohl die Leistung bei Verwendung von 64-Bit erhöht wird.

NDI 4.x und frühere Versionen boten nur eingeschränkte Unterstützung für ARM und boten im Allgemeinen nur Verschlüsselungsunterstützung. Die Veröffentlichung von NDI 5 bietet volle Unterstützung für das Kodieren und Dekodieren auf ARM-basierten Prozessoren, die Neon-Befehle enthalten. Dazu gehören Apple Silicon-Prozessoren.

NDI|HX-Geräte werden normalerweise nur übertragen und basieren auf proprietären Plattformen mit Hardware-H.264-Encoder-Chips. Beispiele für NDI|HX-Geräte sind PTZ-Kameras und die NDI Connect Spark SDI-zu-NDI|HX-Konverterbox. Der NDI-Stream selbst wird am Ende des Streamkonsums über den plattformspezifischen NDI|HX-Treiber gebildet, der der Anwendungssoftware, die die NDI-Quelle konsumiert, dieselben unkomprimierten Daten präsentiert, unabhängig von der ursprünglichen HX-Quellhardware und -komprimierung. NDI|HX2 ist eine reinere Implementierung, die entweder H.264- oder HEVC-Komprimierung unterstützt und zusätzliche NDI-Funktionen ermöglicht.

Mit NDI 4.0 hat NewTek die Aufnahme eines Multi-TCP- Transportmodus angekündigt . Dies nutzt die Hardware-TCP-Beschleunigung in Silizium, die Prozessoren mit niedrigeren Spezifikationen hilft, hohe Netzwerklasten zu bewältigen, im Gegensatz zu UDP, das nicht von der Hardwarebeschleunigung profitiert.

Metadaten und Erweiterungen der NDI-Spezifikation

NDI unterstützt beliebige Metadaten als XML-Blöcke, eingebettet in Video- und Audio-Frames, sowie eigenständige Metadaten-Frames. Der Inhalt dieser Metadatenblöcke bildet 3 Familien.

  1. Interne Metadaten, die von NDI unsichtbar verwendet werden. Diese Nachrichten werden für die Konnektivität und einige andere grundlegende Aufgaben wie Tally verwendet. Sie sind normalerweise für NDI-Clients unsichtbar.
  2. Definierte öffentliche Metadaten. Diese Nachrichten enthalten Dinge wie das NDI PTZ-Protokoll. Sie werden von NewTek als Teil des NDI SDK definiert.
  3. Metadatenschemata von Drittanbietern. Diese Nachrichten werden auf die gleiche Weise wie definierte NDI-Metadaten implementiert, der Inhalt basiert jedoch auf Designs von Drittanbietern.

Verweise

Externe Links