当需要实时获取设备视频流状态变化通知消息时,可使用物联网平台提供的AMQP(基于AMQP 1.0版协议)服务端订阅功能,在业务服务器实时、可靠地获取设备视频流状态信息。本文为您介绍配置AMQP服务端订阅设备视频流状态变化通知消息的操作步骤。
什么是服务端订阅
物联网平台提供AMQP服务端订阅功能,可直接订阅产品下多种类型的设备消息,例如RTMP设备推流、云端推流状态变更等消息。配置服务端订阅后,物联网平台会将产品下所有设备中已订阅类型的消息转发至您的业务服务器。详细信息,请参见服务端订阅。
AMQP服务端订阅设备消息的工作原理,请参见配置AMQP服务端订阅。
使用与限制
设备视频流状态变化通知消息包含:
RTMP设备流接收状态变更通知:RTMP设备向物联网智能视频服务的云端推流的状态通知。仅通过RTMP协议接入物联网平台的IPC设备支持。
RTMP设备推流的详细内容,请参见在设备端完成RTMP向云端推流。
RTMP流推送状态变更通知:RTMP推流任务的状态通知。物联网智能视频服务支持接入的所有IPC设备均支持。
配置RTMP推流任务的详细操作,请参见设备管理的RTMP推流配置。
AMQP服务端订阅设备消息的更多使用限制,请参见配置AMQP服务端订阅。
前提条件
配置AMQP服务端订阅
步骤一:创建消费组
步骤二:创建AMQP服务端订阅
在物联网平台控制台创建AMQP订阅,关联消费组以及对应的设备消息类型。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
在左侧导航栏,选择
。在服务端订阅页面,单击创建订阅。
在创建订阅对话框中,完成配置,单击确认。
参数
说明
产品
选择已创建的RTMP设备所属的产品。
物联网平台会转发该产品下所有设备的消息。一个产品只能创建一个AMQP服务端订阅。
订阅类型
选择AMQP。
消费组
物联网平台提供默认消费组。
选择消费组列表,在右侧选择目标消费组面板,可以选择多个消费组,也可以单击右下角的创建消费组。
推送消息类型
选择设备视频流状态变化通知。
该消息的Topic说明及数据格式,请参见下文数据格式。
步骤三:运行AMQP客户端
建议使用阿里云物联网平台提供的AMQP SDK接入示例。对于您自研的AMQP SDK,阿里云不提供后续技术支持服务。
AMQP客户端接入的详细说明,请参见AMQP客户端接入说明。运行示例,请参见步骤三:运行AMQP客户端。
数据格式
RTMP设备流接收状态变更通知
Topic:
/${productKey}/${deviceName}/vision/stream/status/receive
消息内容:
{ "status":0, "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "productKey":"al12345****", "deviceName":"deviceName1234", "streamNamem":"streamName1234", "streamType": 0, "timestamp":1702544507000, }
参数说明:
参数
描述
status
RTMP设备流接收状态。
0:流添加。
1:流移除。
iotId
设备的ID。物联网平台为该设备颁发的唯一标识符。
productKey
设备所属产品的ProductKey。
deviceName
设备名称。
streamNamem
RTMP流名称。
streamType
码流类型。
0:主码流 。
1:辅码流。
timestamp
状态变更时间,毫秒级时间戳。
RTMP推流状态变更通知
Topic:
/${productKey}/${deviceName}/vision/stream/status/push
消息内容:
{ "status":1, "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "productKey":"al12345****", "deviceName":"deviceName1234", "streamType": 0, "url" : "rtmp://uri", "timestamp":1702544507000, }
参数说明:
参数
描述
status
RTMP推流状态。
1:开始推流。
2:结束推流。
3:推流异常。
iotId
设备的ID。物联网平台为该设备颁发的唯一标识符。
productKey
设备所属产品的ProductKey。
deviceName
设备名称。
streamType
码流类型。
0:主码流 。
1:辅码流。
url
推流地址。
timestamp
状态变更时间,毫秒级时间戳。
相关API
API | 描述 |
创建服务端订阅为指定产品关联消费组以及对应设备消息类型。 | |
在已创建的服务端订阅中,更新产品关联的消费组或设备消息类型。 | |
查询AMQP服务端订阅的消息类型。 | |
在已创建的服务端订阅中,为指定产品添加一个消费组。 | |
查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间。 |