Interfejs urządzenia sieciowego
Network Device Interface ( NDI ) to nieodpłatna specyfikacja oprogramowania opracowana przez firmę NewTek w celu umożliwienia produktom zgodnym z wideo komunikowania się, dostarczania i odbierania wideo w wysokiej rozdzielczości przez sieć komputerową w wysokiej jakości i z małymi opóźnieniami, tj . dokładny i odpowiedni do przełączania w żywym środowisku produkcyjnym .
Technologia
NDI zaprojektowano do pracy w sieci Gigabit Ethernet , przy czym kodek NDI ma dostarczać wideo HD 1080i z szybkością transmisji danych VBR, zwykle około 100 Mbit/s.
Domyślnie NDI używa mechanizmu wykrywania mDNS ( Bonjour / Zeroconf ) do anonsowania źródeł w sieci lokalnej, dzięki czemu urządzenia odbierające NDI mogą automatycznie wykrywać i oferować te źródła, chociaż 2 inne tryby wykrywania (NDI Access, NDI Discovery Server) pozwalają do operacji w podsieciach i bez mDNS. Źródła są tworzone przy użyciu arbitralnie wybranego portu TCP z zakresu portów na hoście wysyłającym NDI. Kiedy żądane jest źródło, ustanawiane jest połączenie TCP na odpowiednim porcie z odbiornikiem NDI łączącym się z nadawcą NDI. NDI 3.x ma opcje korzystania z multiemisji UDP lub emisji pojedynczej z korekcją błędów w przód (FEC) zamiast TCP i może równoważyć obciążenie strumieni między wieloma kontrolerami interfejsów sieciowych bez użycia agregacji łączy . NDI 4.0 wprowadza połączenia multi-TCP.
NDI przenosi wideo, wielokanałowy nieskompresowany dźwięk [ potrzebne źródło ] i metadane . Komunikaty metadanych mogą być przesyłane w obu kierunkach, umożliwiając nadawcy i odbiorcy przesyłanie sobie nawzajem wiadomości za pośrednictwem połączenia z dowolnymi metadanymi w XML . Ten kierunkowy system metadanych umożliwia takie funkcje, jak aktywne informacje o zestawieniach informacje zwrotne do źródeł, aby zrozumieć, że są one nadawane na antenie (program / podgląd). NDI pozwala również nadawcom określić liczbę podłączonych odbiorników, dzięki czemu mogą pominąć niepotrzebne przetwarzanie i wykorzystanie przepustowości sieci, gdy nie ma podłączonych klientów-odbiorców NDI. Odbiorniki NDI mogą zdecydować się na połączenie z różnymi kombinacjami strumieni, aby obsługiwać połączenia tylko audio lub tylko metadane, w których wideo nie jest wymagane.
Zestaw deweloperski oprogramowania NDI (SDK) jest dostępny dla systemów Windows, Linux i MacOS, a także został przeniesiony na systemy iOS, tvOS, Android, Raspberry Pi i FPGA. Pakiet Standard NDI SDK jest dostępny w ramach nieodpłatnej zastrzeżonej . NDI Advanced SDK oferuje producentom OEM bezpośredni dostęp do i ze skompresowanych danych oraz innych funkcji z licencją komercyjną.
Porównanie popularnych protokołów wideo IP
Inne protokoły wideo IP do użytku w profesjonalnej produkcji wideo (zamiast wideo IP używanego do dystrybucji do użytkowników końcowych ) obejmują SMPTE 2022 , SMPTE 2110 , ASPEN (w dużej mierze zastąpiony przez SMPTE 2110) i Sony NMI. Istnieją wyraźne różnice w technologii wykorzystywanej przez te protokoły.
Protokół
Parametr
|
NDI | NDI HX | NDI HX2 | SMPTE 2022-6 | SMPTE 2110 | OSIKA | NMI | CDI |
---|---|---|---|---|---|---|---|---|
Transport | TCP/UDP/Multi-TCP/Niezawodny UDP | UDP (TCP) | TCP/UDP/Multi-TCP/Niezawodny UDP | UDP (RTP) | UDP (RTP) | UDP | UDP | UDP/SRD |
Format obrazu | Niezależny od rozmiaru/aspektu | Niezależny od rozmiaru/aspektu | Niezależny od rozmiaru/aspektu | Tylko formaty SDI | Niezależny od rozmiaru/aspektu | Niezależny od rozmiaru/aspektu | ||
Zestawienie | Tak | Tak | Tak | NIE | NIE | NIE | NIE | |
Dwukierunkowa kontrola urządzenia | Tak | Tak | Tak | NIE | NIE | NIE | NIE | |
Zintegrowany serwer proxy | Tak | Tak | Tak | NIE | NIE | NIE | NIE | NIE |
Zintegrowany kanał alfa | Tak | NIE | Tak | NIE | Tak | Tak | ||
Kompresja | Kodek NDI (SHQ 0/2/7) | NDI|HX (H.264) | H.264/H.265 | NIC | Specyfikacja SMPTE 2110-22 ( JPEG XS , ale nie tylko) | NIC | BRAK / Kodek LLVC | NIC |
Połączenie | Socket, Unicast/Multicast i FEC | Emisja pojedyncza / multiemisja | Socket, Unicast/Multicast i FEC | multiemisja | multiemisja | multiemisja | Multiemisja / ? | SRD |
Szybkość transmisji danych HD (1080i). | ~100 Mb/s | 8–20 Mb/s | ~1–50 Mb/s | >1,5 Gb/s | >1,1 Gb/s | >1,5 Gb/s | >1,5 Gb/s / do 14:1 | >1,5 Gb/s |
Opakowanie esencji | Dyskretne pakiety ramek audio, metadanych i wideo, pojedyncze połączenie | Zmodyfikowane połączenia typu RTSP/RTP | Dyskretne pakiety ramek audio, metadanych i wideo, pojedyncze połączenie | Spakowany surowy strumień bitów SDI | Dyskretne audio, wideo i metadane na oddzielnych połączeniach z różnymi protokołami | Wiele strumieni transportowych MPEG | Rama wyrównana 2022-6 / LLVC | Dyskretne audio, wideo i metadane w formatach SMPTE2110 |
Infrastruktura | Gigabitowa / bezprzewodowa / wielokartowa karta sieciowa z równoważeniem obciążenia / 10 GBit | Gigabitowy / bezprzewodowy | Gigabitowy / bezprzewodowy | Minimum 10 GBit | Minimum 10 GBit | Minimum 10 GBit | Gigabit / 10 GBit | 100 GBit EFA / libFabric |
Wykrywanie usług | Bonjour (mDNS), dostęp NDI (ręcznie), Discovery Server (NDI4) | automatycznie przez sterownik HX | Bonjour (mDNS), dostęp NDI (ręcznie), Discovery Server (NDI4) | NMOS | AMWA IS-04 NMOS | JSON-RPC | Podłącz i graj (NDCP) | NIC |
API | Licencja Royalty-free, biblioteki SDK dla Win (x86), Mac, Linux (x86 i ARM), iOS, odniesienie do FPGA | Sprzętowe kodowanie, dekodowanie za pomocą bibliotek NDI | Wysyłaj za pomocą NDI Advanced SDK, odbieraj za pomocą bibliotek NDI | Standard SMPTE | Standard SMPTE | SMPTE RDD | OTWARTE ŹRÓDŁO |
Historia
NDI zostało publicznie ujawnione przez NewTek 8 września 2015 r. I zostało zademonstrowane na wystawie transmisji IBC w Amsterdamie w tym tygodniu. Pierwszym pokazanym urządzeniem wykorzystującym NDI był NewTek TriCaster , który dostarczał sygnał NDI z każdego ze swoich wejść SDI, a także cztery kanały wyjściowe z miksera wizyjnego. TriCaster mógł również odbierać do dwóch źródeł NDI z innych urządzeń (zwiększono do 12 w późniejszych wersjach i do 44 w serii IP firmy NewTek).
NewTek wcześniej stworzył poprzednika NDI o nazwie AirSend, aby przesyłać wideo z urządzeń zewnętrznych do swoich produktów TriCaster. AirSend został wdrożony przez wielu generatorów znaków (CG), w tym Vizrt i Chyron . Aby szybko wprowadzić te produkty do przestrzeni NDI, NewTek stworzył nowy sterownik, który zastąpił istniejący sterownik AirSend, który można zainstalować na istniejących urządzeniach zgodnych z AirSend, natychmiast konwertując je na urządzenia zgodne z NDI bez żadnych zmian wymaganych przez oryginalnych dostawców CG.
BirdDog był wczesnym użytkownikiem, aw 2018 roku wypuścił Studio NDI, implementację ASIC NDI. BirdDog dostarczył kamery NDI PTZ wraz z wieloma aplikacjami. [ potrzebne źródło ]
Innym wczesnym użytkownikiem NDI był VMix , mikser wizyjny oparty na systemie Windows, który oferuje wejścia i wyjścia NDI. Znaczący wzrost liczby zainstalowanych NDI nastąpił, gdy aplikacja do przesyłania strumieniowego na żywo XSplit dodała obsługę NDI.
Później w 2016 roku NewTek dostarczył NDI 2.0, który dodał funkcje, w tym obsługę wykrywania usług w podsieciach. W kwietniu Magewell ogłosił bezproblemową integrację swoich urządzeń przechwytujących PCIe i USB, umożliwiając dostęp do dowolnego źródła wideo w sieci. To rozwiązanie stworzyło jeden z najbardziej wydajnych możliwych scenariuszy produkcji wideo do emisji z nieograniczonym wyborem źródeł i wszechobecną kompatybilnością z systemami operacyjnymi.
W dniu 12 lipca 2017 r. NewTek ogłosił NDI 3.0, który dodał multiemisję, NDI | HX i inne nowe funkcje, wprowadzając obsługę określonych kamer PTZ z chipsetami H.264 i zaktualizowanym oprogramowaniem układowym.
W kwietniu 2018 r. Na wystawie NAB Microsoft ogłosił, że dodał obsługę NDI do programu Skype dla twórców treści. Inne ogłoszenia na NAB2018 obejmowały NDI 3.5 i nowe wsparcie NDI od dostawców, w tym EVS i Avid.
Wersja 3.4 FFmpeg dodała obsługę wejścia i wyjścia dla NDI, gdy opcjonalnie została skompilowana przez użytkownika końcowego do biblioteki NewTek innej niż open source. Jednak później stwierdzono, że NewTek redystrybuuje wstępnie skompilowane pliki binarne FFmpeg, które zawierały ich bibliotekę inną niż open source z naruszeniem Powszechnej Licencji Publicznej GNU , co spowodowało, że projekt FFmpeg usunął obsługę NDI ze swojej bazy kodów w marcu 2019 r.
W kwietniu 2019 roku, wyprzedzając NAB, NewTek ogłosił dodanie trybu Multi-TCP do NDI 4.0, który ma wykorzystywać sprzętową akcelerację TCP obecną w krzemie, pomagając procesorom o niższej specyfikacji w transporcie NDI. NDI 4.0 wysłane we wrześniu 2019 r., aby zbiegło się z wystawą IBC.
W lipcu 2021 r. wydano NDI 5, dodając następujące główne funkcje: Niezawodna transmisja UDP, Obsługa nadmiarowego serwera wykrywania, Narzędzia NDI 5 (NDI Bridge, NDI Remote, NDI Audio Direct, wyjście FCP-X)
Wersja | Wydany | Funkcje/ulepszenia |
---|---|---|
1.0 | kwiecień 2016 r | Pierwsze wydanie |
2.0 | wrzesień 2016 r | Obsługa wielu podsieci za pośrednictwem Access Manager, obsługa kodowania ARM, iOS SDK |
3.0 | lipiec 2017 r | Obsługa NDI-HX, Opcja transportu multiemisji z obsługą FEC, PTZ. |
3.5 | czerwiec 2018 r | Domyślnie metoda transportu Unicast UDP z FEC. |
3.6 | lipiec 2018 r | Ulepszenia łączenia na poziomie pakietów. |
3.7 | wrzesień 2018 r | Ulepszenia wykrywania. |
3.8 | listopad 2018 r | Ulepszenia wydajności, wbudowane SDK NDI do programowania FPGA. |
4.0 | wrzesień 2019 r | Tryb Multi-TCP Transport, obsługa 16-bitowego HDR, natywne zsynchronizowane nagrywanie, Discovery Server, NDI HX2 |
4.1 | listopad 2019 r | Ulepszenia w wydajności. |
4.5 | marzec 2020 r | Nowa implementacja Multi-TCP, mniejsze opóźnienia dzięki NDI-HX, przewidywalne numery portów dla reguł zapory, ulepszenia jakości kodeków. |
4.6 | listopad 2020 r | Może obsługiwać kodowanie NDI-HX2 na komputerach PC za pomocą NVENC. |
5.0 | lipiec 2021 r | Niezawodna transmisja UDP, obsługa redundantnych serwerów wykrywania, narzędzia NDI 5 (Bridge, Remote, Audio Direct, wyjście FCP-X) |
5.1 | luty 2022 r | Ulepszenia NDI Bridge, obsługa nazw DNS dla Discovery Server, ulepszenia SDK. |
5.5 | sierpień 2022 r | Router NDI, cztery wejścia na wejściu kamery internetowej NDI z obsługą wideo 4K, NDI Remote dodaje funkcje Talkback i udostępniania pulpitu, automatyczne uruchamianie aplikacji podczas uruchamiania systemu, narzędzie wiersza poleceń NDI FreeAudio (znalezione w SDK). |
Używaj w sieciach Wi-Fi i rozległych
NDI zostało zaprojektowane do pracy w dobrej jakości gigabitowych sieciach lokalnych wykorzystujących technologie TCP i Bonjour ( mDNS ). Aby pracować w podsieciach, które nie przechodzą przez mDNS, NDI obsługuje mechanizm znany jako dostęp NDI, który umożliwia ręczne wprowadzanie adresów IP maszyn w innych podsieciach, na których mogą działać źródła NDI.
Niektórzy użytkownicy NDI uruchomili protokół przez połączenia światłowodowe do 15 km, chociaż użycie protokołu TCP przez NDI sprawia, że jest on mniej odpowiedni do połączeń na duże odległości i z dużymi opóźnieniami ze względu na takie czynniki, jak produkt opóźnienia przepustowości i odzyskiwanie utraconych pakietów TCP . Późniejsze wersje NDI wprowadziły różne protokoły transportowe, w tym UDP, MultiTCP i niezawodny UDP (QUIC), które oferują różne charakterystyki sieci. NDI|HX wykorzystuje niższą szybkość transmisji danych, co ułatwia korzystanie z połączeń o ograniczonej przepustowości.
Używaj w infrastrukturze opartej na chmurze
NDI jest również używany w systemach produkcyjnych opartych na chmurze, a jego skompresowane transmisje wideo i unicast sprawiają, że nadaje się do usług opartych na chmurze, takich jak AWS i Azure. Podczas pracy w środowiskach chmurowych usługa NDI Discovery zapewnia rozwiązanie ograniczeń multiemisji wspólnych dla platform chmurowych. Począwszy od NDI 5, narzędzie Bridge umożliwia łączenie zdalnych lokalizacji, czy to przez otwarty Internet, czy przez VPN. NDI Bridge umożliwia korzystanie z NDI-HX2 przy wybieranych przepływnościach i typach kodeków (H.264 lub HEVC) jako formatu transmisji między lokalizacjami (możliwa jest również transmisja High Bandwidth NDI), wszystkie inne aspekty sygnału NDI są zachowane (metadane, alfa , suma itp.).
Obsługa architektury procesora
NDI, gdy działa na architekturach x86, wymaga procesorów zawierających zestaw instrukcji SSSE3 . Większość projektów procesorów Intel począwszy od 2006 r. ma ten zestaw instrukcji, AMD dodało obsługę począwszy od 2011 r. Chociaż nie jest to wymagane, NDI będzie korzystać z zestawów instrukcji Advanced Vector Extensions (AVX) i AVX2 w celu zwiększenia wydajności.
NDI może działać na 32-bitowych lub 64-bitowych architekturach procesorów, chociaż wydajność jest zwiększona w przypadku korzystania z 64-bitowych.
NDI 4.x i wcześniejsze miały ograniczone wsparcie dla ARM, generalnie oferując wsparcie tylko dla kodowania. Wydanie NDI 5 zapewnia pełną obsługę kodowania i dekodowania na procesorach opartych na ARM, które zawierają instrukcje Neon. Obejmuje to procesory Apple Silicon.
Urządzenia NDI|HX są zazwyczaj przeznaczone tylko do transmisji i oparte na zastrzeżonych platformach ze sprzętowymi układami enkodera H.264. Przykładami urządzeń NDI|HX są kamery PTZ oraz konwerter NDI Connect Spark SDI na NDI|HX. Sam strumień NDI jest tworzony na końcu konsumpcji strumienia za pośrednictwem specyficznego dla platformy sterownika NDI|HX, prezentując te same nieskompresowane dane oprogramowaniu użytkowemu korzystającemu ze źródła NDI, niezależnie od oryginalnego sprzętu źródłowego HX i kompresji. NDI|HX2 to czystsza implementacja, obsługująca kompresję H.264 lub HEVC i pozwala na dodatkowe funkcje NDI.
Wraz z NDI 4.0 NewTek ogłosił dodanie trybu transportu Multi-TCP . Wykorzystuje to sprzętową akcelerację TCP w krzemie, która pomaga procesorom o niższej specyfikacji obsługiwać duże obciążenie sieci, w przeciwieństwie do UDP, który nie korzysta z akceleracji sprzętowej.
Metadane i rozszerzenia specyfikacji NDI
NDI obsługuje dowolne metadane jako bloki XML, osadzone w ramkach wideo i audio, a także samodzielne ramki metadanych. Zawartość tych bloków metadanych tworzy 3 rodziny.
- Wewnętrzne metadane używane przez NDI w sposób niewidoczny. Te wiadomości są używane do łączności i niektórych innych podstawowych zadań, takich jak Tally. Zazwyczaj są one niewidoczne dla klientów NDI.
- Zdefiniowane metadane publiczne. Te komunikaty obejmują takie rzeczy, jak protokół NDI PTZ. Są one zdefiniowane przez NewTek jako część NDI SDK.
- Schematy metadanych innych firm. Komunikaty te są implementowane w taki sam sposób, jak zdefiniowane metadane NDI, ale treść jest oparta na projektach stron trzecich.