中文简体 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