中文简体    English


1 概述

Ivy_Cloud_Dev_Sdk 是IVY-IoT为了方便第三方设备厂商能够快速接入到IVY-IoT云平台使用云存储功能而设计的一套解决方案,运行在嵌入式linux平台上,其屏蔽了底层硬件的差异性,提供统一的接口供用户调用。IVY-IoT会根据不同客户硬件方案提供对应平台的SDK。

2 API接口说明

2.1 SDK初始化

接口定义 IvyCloudContext IvyCloudContextCreate(IvyCloudEnv cloudEnv)
接口说明 初始化云存储,创建上下文指针
参数说明 IvyCloudEnv cloudEnv: 云存储环境初始化结构体变量
int8_t channel: IPC通道标识,基站或NVR上使用
int8_t configPath[128]:配置分区路径,可读可写,掉电需保存
STATUS_NOTIFY_CB status_notify_cb: 云服务连接状态信息回调,用于接收云服务连接状态信息,同步云存储时间
返回值 返回值 IvyCloudContext 云存储上下文指针
备注 初始化一次即可

2.2 SDK反初始化

接口定义 void IvyCloudContextDestory(IvyCloudContext context)
接口说明 销毁上下文
参数说明 context 云存储上下文指针
返回值
备注 可选

2.3 查询SDK信息

接口定义 IVY_CODE IvyGetSdkInfo(IvySdkInfo_t *sdkInfo)
接口说明 获取sdk版本号等信息
参数说明 IvySdkInfo_t *sdkInfo:sdk版本等信息结构体指针
返回值 0:执行成功; 其它:执行失败
备注 可选

2.4 设置云存储配置信息

接口定义 IVY_CODE IvyCloudSetRtmpConfig(IvyCloudContext context,IvyRtmpCfg_t *pConfig)
接口说明 设置云存储配置信息,由app从云端获取并写入设备
参数说明 IvyCloudContext context:云存储上下文指针
IvyRtmpCfg_t *pConfig: 云存储配置结构体指针,主要参数如下:
int isEnable: 云存储使能开关,写入配置时使能,复位默认关闭
char szStreamId[64]:云存储推流ID
char szDevId[32]: 设备mac地址,需从app下发,写云配置时与本地mac比较,一致时才写入
char szAccessToken[128]:对应app从云端获取的storeTag
char szPortal[128]:api URL
返回值 0:执行成功; 其它:执行失败
备注

2.5 获取云存储配置信息

接口定义 IVY_CODE IvyCloudGetRtmpConfig(IvyCloudContext context, IvyRtmpCfg_t *pConfig)
接口说明 获取sdk当前云存储配置信息
参数说明 IvyCloudContext context:云存储上下文指针
IvyRtmpCfg_t *pConfig: 云存储配置结构体指针
返回值 0:执行成功; 其它:执行失败
备注

2.6 复位云存储配置

接口定义 IVY_CODE IvyCloudResetRtmpConfig(IvyCloudContext context)
接口说明 将云存储配置恢复默认,设备复位时使用
参数说明 IvyCloudContext context:云存储上下文指针
返回值 0:执行成功; 其它:执行失败
备注

2.7 开始云录像

接口定义 IVY_CODE IvyCloudAlarmStart(IvyCloudContext context,IvyRtmpAlarmMsg_t alarmMsg)
接口说明 通知SDK有告警触发,开始云录像
参数说明 IvyCloudContext context: 云存储上下文指针
IvyRtmpAlarmMsg_t alarmMsg: 报警消息结构体
返回值 0:执行成功; 其它:执行失败
备注 连上云服务器之后才能使用

2.8 停止云录像

接口定义 IVY_CODE IvyCloudAlarmStop(IvyCloudContext context, IvyRtmpAlarmMsg_t alarmMsg)
接口说明 通知SDK停止云录像
参数说明 IvyCloudContext context: 云存储上下文指针
IvyRtmpAlarmMsg_t alarmMsg: 报警消息结构体
返回值 0:执行成功; 其它:执行失败
备注 连上云服务器之后且开始了云存储才能使用

2.9 发送音视频数据

接口定义 IVY_CODE IvyCloudSendAV(IvyCloudContext context, IvyFrame_t* frame)
接口说明 向sdk发音视频数据
参数说明 IvyCloudContext context: 云存储上下文指针
IvyFrame_t* frame: 音视频帧信息结构体指针,具体参数如下:
IvyFrameType_e frameType: 帧类型
IvyStreamType_e streamType:码流类型
IvyCodecType_e encodeType: 编码类型
int32_t frameNo: 帧序号
int8_t channel: 通道标识,用于基站或NVR
int32_t dataLen: 帧数据长度
long long pts: 时间戳
int8_t data[0]: 存放帧数据的地址
返回值 0:执行成功; 其它:执行失败
备注

3 Demo使用

3.1 解压sdk

tar -xvf Ivy_Cloud_Dev_Usr_Sdk_Ingenic_V1.0.9.20190808_143845.tar.xz

sdk目录文件介绍:

├── demo 测试用例
├── doc sdk文档
├── include sdk头文件
├── lib sdk库
└── thirdLib
│ ├── include 第三方库头文件
│ └── lib 第三方库
└── Makefile
└── test.h264 测试文件

3.2 编译demo

Demo可以在pc端测试,也可以在板端测试。修改MakeFile选择对应平台进行编译

3.3 模拟推流

运行demo:
./Ivy_demo

模拟开始云存储:
kill -10 PID PID为demo的进程ID

模拟停止云存储:
kill -12 PID

文档更新时间: 2020-06-30 18:56   作者:admin