利用RTMP或RTSP实现跨平台一对一互动功能

  • 2019 年 10 月 5 日
  • 筆記

目前市面上大多一对一互动都是基于WebRTC,缺点如下:

  1. 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系;
  2. 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量;
  3. 难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景;
  4. 整个框架体系不够灵活,代码复杂度高,行话说的好:从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。