如何在移動視頻開發中使用ip組播技術

AnyChat Platform Core SDK V4.0新增了對IP組播技術的支持,下面介紹如何使用相關的API接口,典型的加入多播組,並向多播組發送數據的代碼如下:

 

1.// 設置本地組播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD));
4.  
5.// 加入多播組
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA | BRAC_MCFLAGS_RECVDATA;
7.BRAC_MultiCastControl("224.2.3.4", 9810, "", 5, dwFlags);

 

上面的代碼中“dwFlags”標誌指示加入多播組“224.2.3.4:9810”,本地的數據通過該多播組進行傳輸,同時,自己也從該多播組接收其它用戶的音視頻數據。

 

當需要本地發送組播數據時,設置本地組播策略是必須的,因爲系統默認是採用服務器所配置的網絡數據傳輸策略(AnyChatCoreServer.ini中的“RoutingPolicy”配置項)進行數據發送,如不設置本地組播策略,則不會向組播地址發送數據,設置之後,可以將本地的數據發送多個組播地址和端口,如下面的代碼表示音視頻數據將向“224.2.3.4:9810”、“224.2.3.4:9812”兩個組播端口廣播數據:

 

1.// 設置本地組播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(const char*)&dwMultiCastPolitic,sizeof(DWORD));
4.  
5.// 加入多播組
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA;
7.BRAC_MultiCastControl("224.2.3.4", 9810, "", 5, dwFlags);
8.BRAC_MultiCastControl("224.2.3.4", 9812, "", 5, dwFlags);

當系統有多塊網卡,而需要向其中某一塊網卡連接的網絡進行組播時,可通過“BRAC_MultiCastControl”的第三個參數來指定即可,第三個參數是指定網卡的IP地址。

發佈了27 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章