NDI傳輸機制和網絡傳輸方法

1、NDI技術原理

在NewTek開發NDI時,NDI就已經被當作一種每個人都可以使用的、版權免費的技術,並且已被廣播電視設備供應商廣泛採用,包括一些有時被視爲NewTek自有產品競爭對手的廠商。 NewTek提供了可用於Windows、Linux和MacOS平臺的免費的NDI代碼庫和示例。NDI同時支持iOS,Android,Raspberry Pi和FPGA平臺的開發應用。

與其他專業IP視頻協議不同,例如運動圖像和電視工程師協會(the Society of Motion Picture & Television Engineers)的SMPTE2110、SMPTE2022-6,還有自適應樣本圖像封裝(ASPEN),這些協議都需要萬兆網絡環境。NDI設計爲在千兆網絡上運行,是使用現有網絡基礎設施就可以採用的協議。這是通過使用NDI編解碼器進行視頻數據壓縮來實現的,該編解碼器以平均約爲100Mbit / s 的VBR(可變比特率)數據速率提供1080格式的全高清視頻。

NDI使用mDNS(Bonjour /零配置網絡)發現機制在局域網上登記源信息,使NDI接收設備可以自動發現並提供其自身信息反饋給這些源。在創建NDI源時,會在NDI發送主機上的一系列端口中選擇任意一個TCP端口來進行創建。當源被請求時,會在一個適當的端口上建立一個NDI接收器到NDI發送器的TCP連接。NDI 3.x版本採用帶有FEC(前向糾錯)功能的UDP組播或單播來代替TCP,並且可以跨多個千兆網卡,傳輸負載均衡組播流,而無需鏈路聚合。

NDI攜帶視頻、多通道無壓縮音頻和元數據。元數據信息可以在兩個方向上發送,允許發送者和接收者通過NDI連接以XML形式的任意元數據相互發送消息。該方向性的元數據系統,提供瞭如返送給NDI源TALLY信息等功能,使NDI源瞭解到它在直播中是否處於PGM(節目播出)或PVW(預覽)狀態。 NDI還允許發送者確定其連接的接收器的數量,因此當沒有NDI接收器客戶端連接時,它們可以略過不必要的處理和網絡帶寬利用。

2. mDNS協議介紹

mDNS原理的簡單理解——每個進入局域網的主機,如果開啓了mDNS服務的話,都會向局域網內的所有主機組播一個消息,我是誰,和我的IP地址是多少。然後其他也有該服務的主機就會響應,也會告訴你,它是誰,它的IP地址是多少

mDNS multicast DNS , 使用5353端口,組播地址 224.0.0.251。在一個沒有常規DNS服務器的小型網絡內,可以使用mDNS來實現類似DNS的編程接口、包格式和操作語義。MDNS協議的報文與DNS的報文結構相同,但有些字段對於MDNS來說有新的含義。

每個進入局域網的主機,如果開啓了mDNS服務的話,都會向局域網內的所有主機組播一個消息,我是誰,和我的IP地址是多少。然後其他也有該服務的主機就會響應,也會告訴你,它是誰,它的IP地址是多少。mDNS的域名與普通DNS的域名是通過後綴.local區分開來的。如果一臺終端需要訪問一個mDNS域名,他就會向局域網內發送組播,詢問該域名的IP是多少。

例如: 

一個設備接入網絡,首先查詢名稱是否衝突,並通告當前服務器信息

衝突檢測結束後,發送MDNS通告,通知其它設備更新DNS緩存

其它設備對該域名訪問時,會發起MDNS查詢;

3.mDNS 的工作原理

首先,在 IP 協議裏規定了一些保留地址,其中有一個是 224.0.0.251,對應的 IPv6 地址是 [FF02::FB]。

mDNS 協議規定了一個端口,5353。

mDNS 基於 UDP 協議。

每個進入局域網的主機,如果開啓了mDNS服務的話,都會向局域網內的所有主機組播一個消息,我是誰,和我的IP地址是多少。然後其他也有該服務的主機就會響應,也會告訴你,它是誰,它的IP地址是多少。當然,具體實現要比這個複雜點。

比如,A主機進入局域網,開啓了 mDNS 服務,並向 mDNS 服務註冊以下信息:我提供 FTP 服務,我的IP是 192.168.1.101,端口是 21。當B主機進入局域網,並向 B 主機的 mDNS 服務請求,我要找局域網內 FTP 服務器,B主機的 mDNS 就會去局域網內向其他的 mDNS 詢問,並且最終告訴你,有一個IP地址爲 192.168.1.101,端口號是 21 的主機,也就是 A 主機提供 FTP 服務,所以 B 主機就知道了 A 主機的 IP 地址和端口號了。

大概的原理就是這樣子,mDNS提供的服務要遠遠多於這個,當然服務多但並不複雜。

在Apple 的設備上(電腦,筆記本,iphone,ipad等設備)都提供了這個服務。很多Linux設備也提供這個服務。Windows的設備可能沒有提供,但是如果安裝了iTunes之類的軟件的話,也提供了這個服務。

這樣就可以利用這個服務開發一些局域網內的自動發現,然後提供一些局域網內交互的應用了。

4.組播IP地址

關於組播地址的分類:
224.0.0.0~224.0.0.255爲預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協議使用;
224.0.1.0~224.0.1.255是公用組播地址,可以用於Internet;
224.0.2.0~238.255.255.255爲用戶可用的組播地址(臨時組地址),全網範圍內有效;
239.0.0.0~239.255.255.255爲本地管理組播地址,僅在特定的本地範圍內有效;

這篇文章詳細介紹IP組播的工作原理及其應用:

https://blog.csdn.net/kaoa000/article/details/78891775

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章