要搭建本身的实时音视频服务?你须要留意这些坑

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

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

  1. 开发 IoT 产品

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

  1. 基于 WebRTC 开发

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

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

  1. 复杂网络的应对

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

首先,Server to Device 有两种通路:优化

a. 服务器-基站-设备。要考虑不一样类型基站(3G/4G/WDCDMA/TD)、同类基站不一样地点(好比演唱会附近)、同类基站同地点不一样时间(好比用网高峰期)、不一样国家的基站几种状况下的传输状况。编码

b. 服务器-路由-设备。路由分为 2.4G 和 5G两个频段。2.4G 虽然覆盖面积广,但容易有干扰和丢包;5G 频段相比起来干扰、丢包少,但覆盖面积小,多人链接同一路由的话,带宽竞争严重,有时丢包也会很高。并且质量差的路由易出现各类网络抖动或其它 bug。这些也须要服务端团队考虑进去。加密

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

  1. 运维

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

  1. 团队组建与开发成本

团队组建确定是基础。除了自研编解码算法的团队之外,还须要一支大前端开发团队,基于 Web、Native 或基于跨平台方案来实现多个平台的客户端。更重要的是,须要一支服务端团队解决复杂的网络架构问题。

另外,从选择在哪里部署服务器,到实际开发、实时调配、实时监控等,若是要自已迈过上述这些“坑”,都须要付出研发、时间成本。

声网正式推出 实时码流加速 SDK。自研编解码的开发者,在客户端完成音视频数据的处理后,能够经过实时码流 SDK 的 API 接入声网 SD-RTN™实时网,在 SDK 的帮助下全部音视频数据均可以低延时、高质量传输。对于WebRTC 开发者来说,你能够基于WebRTC 来开发端上的音视频功能,而后经过RTSA SDK的接口来实现音视频数据的传输,开发者无需本身再搭建服务器。更多详情:www.agora.io/cn/rtsa/

相关文章
相关标签/搜索