快速搭建基于海思芯片的音视频RTC服务
                                                   **声网 RTSA Lite SDK 使用教程**

Intro:

在视频/图片编码及获取过程中,海思芯片具备绝对优势,其软硬件接口丰富,可以快速获取视频流数据。此外,其硬件协处理器完成视频转码处理的效率高,ARM CPU 消耗低。同时,在RTC通讯服务层面,声网 Agora 提供了多款ARM类型的嵌入式SDK封装,使用起来非常简单,较好适配浏览器端。基于以上优势,我们可以将视频处理和RTC传输应用有效结合起来,快速搭建一个音视频传输系统,进一步应用在泛IPC领域。

1. RTSA Lite简介

RTSA Lite是声网Agora布局IoT音视频市场,定制化打造的一款极轻量级音视频SDK。 RTSA Lite经过持续迭代演进,目标打造极小包体、极低内存消耗、极低性能开销的高可用、高质量IoT音视频SDK,为开发者提供极简API,助力开发者快速实现音视频需求。

图一:RTSA Lite的整体框架结构

2. RTSA Lite重要优势

  • 跨平台:SDK采用C、ASM内嵌汇编编写,具有极佳的跨平台特性,目前已支持Linux、iOS、Andorid、macOS、Windows、HarmonyOS、LiteOS、freeRTOS、AliOS Things、spreadtrum等平台,跨平台部分无需开发者再做任何开发工作,SDK已全部集成完毕。
  • 小包体:SDK包体严格控制在400KB以内,RTC服务定制化裁剪最小可达280KB。
  • 低内存:在同时收发 320 240分辨率H.264码流的场景中,内存占用小于2MB,定制化JPEG codec同时收发240 240分辨率场景中,内存占用小于1MB。
  • 高性能:在400M主频单核ARM7处理器上,SDK占用约30% CPU。
  • 质量透明:音视频连通率大于99%,单频道单用户最高50Mbps,50%网络丢包场景下无感知恢复,4G网络下延时200ms以内,支持全球音视频互通,支持加密传输、区域限制等;配合声网的水晶球产品能够全方位可视化把控音视频服务质量。

3. RTSA Lite适用场景

SDK典型的使用场景有,IP camera、楼宇对讲、车载监控、可视门铃、电话手表等各种有音视频需求的嵌入式场景,同时也适用于算力内存资源丰富的其他场景。目前已赋能小天才、360、中移物联等众多产商。

(产品图)
image

4. RTSA Lite海思平台开发实践

4.1. 设备信息

以一款海思芯片为例,我们获取到的软硬件环境如下所示。

4.2. 下载SDK

根据设备软硬件从Agora官网下载匹配的SDK版本:

https://docs.agora.io/cn/RTSA/downloads?platform=All%20Platforms

选择适配的包体时,主要考虑以下四个参数:

1)芯片核心CPU架构

我们使用的Hi3518EV300,是ARM A7架构核心,所以第一个参数段选择“armv7a”

2) 操作系统

我们使用的是linux操作系统,所以第二个参数段选择“linux”

3)Libc库

我们使用的是uclibc,所以第三个参数段选择“uclibc”

4)是否有硬浮点

海思的芯片一般是软浮点的,所以第四个参数段选择“eabi”

综上,我们选择下载“ armv7a-linux-uclibceabi ”SDK包,如下图所示:

Agora官网提供的下载包种类丰富,基本可以覆盖海思、博通、君正、全志、Master、瑞芯微、Ambarella 等主流的视频方案芯片。在操作系统方面,除了linux外还支持harmory鸿蒙系统,若需适配RTOS类操作系统则需要通过“其他平台,请填写问卷”的方式主动获取。

4.3. SDK目录结构

4.4. 最终实践

根据Readme.md中的介绍,首先需要在Agora官网注册APPID。注册完成后,将out/arm目录下的文件拷贝到海思平台,我们通过udisk mount的方式完成。

经过以上操作,海思平台的文件结构如下图所示:

区别于P2P传输,声网RTSA Lite需要设备具备访问公网的能力,配置好网络后,通过执行命令行:./hello_rtsa -i a622fad2e8814b748389c5219849b71b -c testchannel 实现推流功能,推流成功后的运行日志如下所示。
image

通过Readme.md中的web链接可以轻松实现海思芯片平台与Web 端的音视频通信demo

API 详细介绍可参考官网:

https://docs.agora.io/cn/RTSA/API%20Reference/rtsa_c/index.html

推荐阅读
相关专栏
SDK 教程
164 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。