全部产品
云市场

视频服务

更新时间:2019-11-15 15:59:47

1、服务介绍

1.1 概述

视频监控设备管理,提供了一套标准的边缘视频接入的方案。边缘视频接入有两种方式,NVR(网络视频录像机)和IPC(网络摄像机)。支持在局域网接入符合GB/T28181和ONVIF协议的视频设备,转换成RTMP协议接入Link-Vision视频服务端。视频设备通过接入LinkVision Node(LVN)链接到物联网平台,集成商(SI)可以在应用服务平台的设置中进行设备信息的补充,然后通过IoT网关SDK访问API把设备信息、视频流集成到综合管控平台。整体架构图如下:
LV架构
快速接入流程,参考LinkVision接入流程

2 接入指南

2.1创建LVN设备

登录到物联网应用服务平台,创建视频边缘设备。

2.1.1 创建视频边缘设备

创建摄像头边缘产品
创建产品

所属品类选择标准品类中的边缘计算下摄像头边缘节点,保存创建成功。
创建节点1


创建节点2

在新创建的产品下创建设备
创建设备

选择新创建的产品
选择产品

点击确定后生成设备证书,请妥善保管。
创建证书

2.1.2 创建视频摄像头设备

创建摄像头设备的流程和视频边缘设备的流程一样,只是在选择产品品类的时候用的是视频摄像头。新生成摄像头设备的证书也要妥善保管,会在后续使用中用到选择品类

2.2 部署LVN

用上一步创建的边缘设备部署LVN到边缘端。
2.1、部署LVN实例,配置边缘设备证书
2.2、分配摄像头证书

2.3 设备集成到项目中

2.3.1 创建项目

创建项目

新创建的项目会生成访问IoT网关用的Appkey、Appsecret(后续调用开放API会用到),开发态可以看到如下信息。
开发设置

2.3.2 设备绑定到项目

切换到集成态,进入设备管理模块
设备绑定项目

选择摄像头设备绑定到项目
绑定

2.3.3 设备绑定到应用

同时选择摄像头设备绑定到该项目的应用下(应用名和项目名一样)
3

2.4 调API集成到综合管控平台

2.4.1 获取设备列表

通过productKey可以获取到其下所有的设备列表、设备状态与设备类型等信息。

Path 版本 是否登录
/app/thing/list 1.0.0

入参:

参数名 数据类型 是否必须 参数描述
productKeyList String Y 请在物联网平台->设备管理中获取
pageSize Integer N 分页大小
pageNo Integer N 当前页索引
categoryKeyList String N 品类列表
tagList String N 标签列表

出参:

参数名 数据类型 参数描述
activeTime String 设备激活时间
productKey String 设备的Key
nodeType Integer 节点类型
deviceName String 设备名称
utcCreateTime Datetime 创建时间(UTC格式)
productName String 产品名称
utcActiveTime Datetime 设备激活时间(UTC格式)
utcLastOnlineTime Datetime 设备最后在线时间(UTC格式)
createTime Datetime 创建时间
lastOnlineTime Datetime 设备最后在线时间
status String 设备状态,OFFLINE:离线,ONLINE:在线

示例
入参示例

  1. {
  2. "request": {
  3. "apiVer": "1.0.0"
  4. },
  5. "id": "bfd7388e-b6ec-4abd-8832-e6a4ea5b2cbd",
  6. "params": {
  7. "productKeyList": ["xxxx"],
  8. "pageSize": 20,
  9. "pageNo": 1,
  10. "categoryKeyList": [],
  11. "tagList": []
  12. },
  13. "version": "1.0"
  14. }

出参示例

  1. {
  2. "code": 200,
  3. "data": {
  4. "total": 1,
  5. "data": [{
  6. "activeTime": "2019-10-15 13:11:49",
  7. "productKey": "xxxxxx",
  8. "nodeType": 0,
  9. "deviceName": "Camera001",
  10. "utcCreateTime": "2019-10-15T03:45:36.000Z",
  11. "productName": "xxxxx",
  12. "utcActiveTime": "2019-10-15T05:11:49.658Z",
  13. "utcLastOnlineTime": "2019-10-16T03:27:46.604Z",
  14. "createTime": "2019-10-15 11:45:36",
  15. "lastOnlineTime": "2019-10-16 11:27:46",
  16. "status": "OFFLINE",
  17. "iotId":"xxxxxx"
  18. }],
  19. "pageNo": 1,
  20. "pageSize": 20
  21. },
  22. "id": "18b32d34-0808-4ebd-b61b-79572a484535"
  23. }

2.4.2 获取视频流地址

该接口用来获取视频(如监控)视频流的播放地址。

Path 版本 是否登录
/vision/stream/query 1.0.0

入参:

参数名 数据类型 参数描述
iotId String 该参数通过获取设备快照接口获取

出参:

参数名 数据类型 参数描述
path String 视频流播放url

示例
入参示例:

  1. {
  2. "request": {
  3. "apiVer": "1.0.0"
  4. },
  5. "id": "18437b6b-15f1-4aad-bfe5-04cb62f0f704",
  6. "params": {
  7. "iotId": "TP54JT17****"
  8. },
  9. "version": "1.0"
  10. }

出参:
// TODO 添加出参示例

2.4.3 API调用方式

POM依赖

  1. <dependency>
  2. <groupId>com.aliyun.api.gateway</groupId>
  3. <artifactId>sdk-core-java</artifactId>
  4. <version>1.1.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun.iotx</groupId>
  8. <artifactId>iotx-api-gateway-client</artifactId>
  9. <version>1.0.3</version>
  10. </dependency>

示例代码

  1. public void propertiesTimeline() throws UnsupportedEncodingException{
  2. IoTApiClientBuilderParams ioTApiClientBuilderParams =
  3. new IoTApiClientBuilderParams();
  4. ioTApiClientBuilderParams.setAppKey("appKey");
  5. ioTApiClientBuilderParams.setAppSecret("appSecrect");
  6. SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
  7. IoTApiRequest request = new IoTApiRequest();
  8. //设置api的版本
  9. request.setApiVer("1.0.0");
  10. // 接口参数
  11. request.putParam("productKey","xxxxxx");
  12. request.putParam("deviceName","xxxxxx");
  13. request.putParam("identifier","OilQuantity");
  14. request.putParam("pageSize",20);
  15. //start与end是查询的时间范围,时间戳格式,精确到毫秒
  16. request.putParam("start","1571022916629");
  17. request.putParam("end","1571162916629");
  18. request.putParam("ordered",false);
  19. request.setVersion("1.0");// 请求协议版本
  20. ApiResponse response = syncClient.postBody("api.link.aliyun.com",
  21. "/vision/stream/query", request, true);
  22. System.out.println("response code = " + response.getCode()
  23. + " response = " + new String(response.getBody(), "UTF-8"));
  24. }