利用RTMP或RTSP實現跨平台一對一互動功能
- 2019 年 10 月 5 日
- 筆記
目前市面上大多一對一互動都是基於WebRTC,缺點如下:
- 伺服器部署非常複雜,不利於私有部署,在一些私密性高的場景下,無法使用,如公安、市政等體系;
- 傳輸基於UDP,很難保證傳輸品質,由於UDP是不可靠的傳輸協議,在複雜的公網網路環境下,各種突發流量、偶爾的傳輸錯誤、網路抖動、超時等等都會引起丟包異常,都會在一定程度上影響音影片通訊的品質;
- 難以應對複雜的互聯網環境,如跨區跨運營商、低頻寬、高丟包等場景;
- 整個框架體系不夠靈活,程式碼複雜度高,行話說的好:從demo到實用,中間還差1萬個WebRTC。
RTMP/RTSP一對一互動SDK有以下優點:
- 基於現有RTMP、RTSP推送、或內置RTSP服務、RTMP/RTSP直播播放SDK,產品穩定度高,行業內首屈一指的超低延遲特性;
- 加入噪音抑制、迴音消除、自動增益控制等特性,確保通話效果;
- 採用通用的RTMP和RTSP伺服器,如nginx、SRS或 Darwin Stream Server(原生版本),更有利於私有部署;
- 支援H.264的擴展SEI消息發送機制;
- 支援H.265編碼(Windows 64位庫,Android/iOS硬編碼)和H.264可變碼率設定,換句話說,之前大牛直播SDK推送端支援的功能,都可以同步支援;
- 支援H.265解碼,直播播放器支援的功能,一對一互動模組都可以有選擇的支援;
- Windows平台支援雙流合成大小屏錄製;
- Windows支援攝影機、螢幕合成、水印等各種組合模式,擴展度高;
- 適用於應急指揮、教育培訓等領域;
- 真正的跨平台,支援Windows、Android、iOS一對一互動。
對應Demo (Github):
- Windows C++工程:集成可參考WIN-PublisherSDK-CPP-Demo和WIN-PlayerSDK-CPP-Demo,或相應C# demo;
- Android工程:SmartEchoCancellationV2;
- iOS工程:SmartiOSEchoCancellation。