用这个不到 400KB 的 SDK,让你的音视频数据也可以实时传输

阅读数:78 2019 年 11 月 29 日 17:12

用这个不到 400KB 的 SDK,让你的音视频数据也可以实时传输

实时音视频数据的处理、传输流程可以简要概括为:采集、编码、前处理、传输、解码、后处理、渲染,流程如下图所示,我们曾不止一次地讲解过这个流程,相信大家早已捻熟于心。从数据采集后进行编码,到解码并提供给应用层做渲染,声网 Agora 视频 / 音频 SDK,可以帮助开发者解决这个过程中的开发问题,快速实现多种实时音视频互动场景。

用这个不到 400KB 的 SDK,让你的音视频数据也可以实时传输

行业中也有很多团队,他们有能力自研编解码,或采用特殊编码格式、自定义加密编码、非主流编码格式,例如:

1. 开发 IoT 产品

与 RTC 相关智能硬件产品有很多,最典型的就是智能眼镜、智能摄像头等。它们的编解码方式一般有两种,一种是使用芯片厂商提供的 API 进行编解码,优点是速度快,但与硬件平台绑定,缺少灵活性;另一种是使用 x264、x265 等进行软件的方式,优点是定制化灵活度高,但速度慢。在解决编解码问题之后,开发团队还需要自己部署服务器,实现设备间的音视频互通。

2. 基于 WebRTC 开发

WebRTC 为很多开发者提供了一个很好的入门阶梯,WebRTC 已经自带了编解码、降噪、回声消除的模块,解决了开发者们在客户端上的需要开发问题。当然,也有一些团队有自己优化的编解码算法,他们可以在编解码环节做出更多的优化。不少开发团队会基于 WebRTC 搭建自己的应用,比如在线教育、社交直播等。不过抽取 WebRTC 中好的部分,进行二次开发,工作量很大。而且,无论怎样都需要自己搭建信令服务器、媒体服务器,并合理部署节点,优化传输策略等。

以上只是比较典型的两种情。不过对于这类开发团队来讲,最麻烦的问题就是不得不踩一遍“服务端搭建”的那些坑:

1. 复杂网络的应对

与一般应用不同,带有实时音视频通话或实时消息指令的应用对服务端的要求更高,需要关注丢包、抖动、延时三个关键指标。以丢包为例,在做公网的实时数据传输时,丢包对抗是少不了的。丢包,即未能按时到达的包,通常发生在两个传输阶段:Server to Device、Server to Server。

首先,Server to Device 有两种通路:a. 服务器 - 基站 - 设备,b. 服务器 - 路由 - 设备。对于前者,你需要考虑不同类型基站(3G/4G/WDCDMA/TD)、不同地点(比如演唱会附近)、不同时间(比如用网高峰期)、不同国家的传输情况。而对于后者,主要需要针对 2.4G 和 5G 两个路由频段做网络传输优化策略。因为 2.4G 容易有干扰和丢包,而 5G 频段虽然干扰、丢包相对较少,但覆盖面积小,多人连接同一路由的话,带宽竞争严重,有时丢包也会很高。而且质量差的路由易出现各种网络抖动或其它 bug。这些也需要服务端团队考虑进去。

Server to Server 阶段,即骨干网络与边缘网络。在骨干网络中,传输也会遇到网络拥塞。你需要关注同一国家相同运营商之间的传输质量,因为在同一运营商间也会出现丢包;还需要关注同一国家不同运营商之间的传输,因为很多时候,运营商之间的结算和有限带宽会使得网络不稳定;如果你的业务是跨地区、跨国的,比如应用出海、在线教育,那么不同国家的传输问题会更负责,要在不同国家选择好的机房,并实时监控,不同国家的网络质量差异很大,比如东南亚、部分中东国家。这个阶段的传输优化是一个专门的技术领域,如果自研需要投入大量人力、精力和开发成本。

2. 运维

要建立一个可靠的 toC 或 toB 服务,24x7 的实时监控与运维必不可少。不仅需要做到能及时监测并修复数据传输的问题,还需要有效地手段将质量问题透明给自己的研发团队和用户。同时,自研开发者还需要做好容灾备份策略、链路与故障恢复机制。离,并合理调度,以解决

3. 团队组建

另一方面,肯定是研发人员配齐的问题。除了自研编解码算法的团队以外,还需要一支大前端开发团队,基于 Web、Native 或基于跨平台方案来实现多个平台的客户端。更重要的是,需要一支服务端团队解决复杂的网络架构问题。

4. 开发成本

从选择在哪里部署服务器,到实际开发、实时调配、实时监控等,如果要自已迈过其中的“坑”,都需要付出成本,并积累一定的经验。

声网实时码流加速 RTSA SDK

以往,我们以声网视频 / 音频 SDK 的形式,提供从端到端的一整套实时数据传输服务,我们通过 SDK 来帮助开发者解决端上的音视频编解码等数据处理问题,然后利用基于智能路由算法优化的声网 SD-RTN™ 来提供实时数据传输服务。

现在,我们正式推出实时码流加速(RTSA) SDK,让有特殊编解码要求、开发音视频相关 IoT 产品或使用 WebRTC 的开发者,都可以通过 API 利用 SD-RTN™ 的实时传输能力,获得高连通性、高实时性、高稳定性的码流传输云服务,可以让开发者不用在服务端“采坑”。

用这个不到 400KB 的 SDK,让你的音视频数据也可以实时传输

声网实时码流加速(RTSA)SDK 的特性

1. 高可靠的实时传输

声网在全球超过 200 个地区、国家部署了超过 200 个数据中心,通过实时质量监控与动态智能路由机制来提供体验最优的传输路径。在全球范围内,无论用户是在美国使用 AT&T,还是在印度使用 Bharti,都可通过 SD-RTN™ 获得专线级质量的实时音视频互动体验。同时,SD-RTN™ 支持全球多点容灾和备份,在单 IDC 故障时可快速隔离、调整传输策略,保证传输服务的高可用。声网将 SD-RTN™ 实时数据传输能力,以实时实时码流加速(RTSA) SDK 的形式提供给所有用户,可保障连通率>99%。

2. 小于 400 KB、多系统支持

不同应用产品对 SDK 的包大小都有不同要求,其中 IoT 类产品的要求尤为严格。IoT 设备种类很多,机器人、智能摄像头、智能音箱、智能手表等,不同设备的内存资源不同,能分配给 SDK 的内存资源会小于几 MB,甚至在 1MB 以内。声网实时码流加速(RTSA) SDK 的包体积小于 400KB,而且支持 Linux、Android、iOS、macOS、Windows 系统,适用于包括 IoT、社交、教育等产品的要求。

3. 质量透明与 7x24 SLA

在集成声网实时码流加速(RTSA)SDK 后,开发者可在声网水晶球(Agora Analytics)从用户行为(如静音、挂断等)、设备运行状态、QoE、QoS 等多个维度实时查询每一个通话的质量。在遇到用户反馈问题后,开发者能快速排查问题,从而快速解决问题。同时,声网还建立了 SLA 标准(Service Level Agreement),7x24 提供服务质量保障。

4. 支持多种应用场景

实时码流加速(RTSA) SDK 可支持多种场景,例如 4K/8K 高清视频传输、VR 数据传输、跨国网络游戏数据传输、企业协同、IoT、在线教育、社交等,开发者可采用自研编解码算法或 WebRTC 完成客户端上的音视频数据处理,再通过 SDK 进行实时传输。实时码流加速(RTSA) SDK 支持包括特殊编码格式、自定义加密编码、非主流编码格式等,并支持:

  • 前向纠错 (FEC)/ 智能重传 / 交错编码 (Interleaving) 相结合的丢包恢复技术,实现 50% 丢包无感知恢复。
  • 单个频道单个用户最高 50 Mbps 的码率
  • 码流平滑。
  • 动态带宽预测:根据带宽预测算法,提出码率动态建议,反馈当前应该提高还是降低码率以及相应的建议值。
  • 单频道内多视频流。
  • 多频道同时在线。

目前,已经有多个智能硬件、视讯类产品集成部署了声网实时码流加速(RTSA)SDK。

本文转载自公众号声网 Agora(ID:shengwang-agora)。

原文链接:

https://mp.weixin.qq.com/s/0p_VQ13pCt73DceP1v379Q

评论

发布