**声网 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、中移物联等众多产商。
(产品图)
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 实现推流功能,推流成功后的运行日志如下所示。
通过Readme.md中的web链接可以轻松实现海思芯片平台与Web 端的音视频通信demo
API 详细介绍可参考官网:
https://docs.agora.io/cn/RTSA/API%20Reference/rtsa_c/index.html