简体中文

CERES请求拉流接口

Ceres 云端流拉取 API 文档(GraphQL)

一、概述

本文档涵盖Ceres云端流拉取相关GraphQL接口,用于通知ceres服务从设备拉流并获取拉流URL,或终止已建立的流连接。支持三种流拉取初始化接口(适配不同认证场景)和一种流终止接口。

核心说明:

1. 所有接口统一通过 POST 方法请求,请求路径为 /ceres;

2. 支持 RTSP (over TLS) 和 HLS 两种流格式;

3. 接口支持实时流拉取和回放流拉取,回放需指定相关回放参数;

4. 需提前向TUTK申请 realm 信息,用于接口身份校验;

5. 响应数据统一包含在 data 字段中,核心返回值为状态码(code)、拉流URL(url)和错误信息(msg)。

二、GraphQL 接口

所有接口请求地址:https://domain:port/ceres(实际部署时替换为真实域名和端口),请求方式均为 POST,Content-Type 默认为 application/json。

(一)init_streaming

通知ceres从设备拉流并获取拉流URL,适配P2P场景下基于 account/password 的认证方式,支持实时流拉取。

输入参数

参数名类型必选说明备注
devicestring设备的UID,长度为20位或40位核心标识参数
accountstring[P2P] 连线 avClientStart 中的 account(AVAPI)P2P场景必填
passwordstring[P2P] 连线 avClientStart 中的 password(AVAPI)P2P场景必填
protocolstring流格式,可选值:rtsp(rtsp over TLS)、hls仅支持指定的两种格式
realmstringrealm,客户向TUTK申请身份校验核心参数
statestring客户自定义信息,用于第三方验证自定义校验字段
authkeystring[P2P] 设备 loginEx 的连线密码,使用 login 方式则无需填写可选参数
authTokenstring第三方 auth 的 token可选参数
authTypestringauthToken 的类型,如:Bearer 或 JWT与 authToken 配套使用
channelint设备的通道默认使用默认通道

返回值

参数名类型描述
codestring小于0失败,0为成功
urlstring拉流的地址(成功时返回有效地址,失败时为空字符串)
msgstring失败的错误信息(成功时为空字符串)

请求示例(curl)

curl -XPOST -d 'query {
    init_streaming(
        authToken:"dm verify token",
        authType:"Bearer",
        device:"device UID",
        account:"user",
        password:"secret",
        protocol:"rtsp",
        realm:"rd",
        state:"state",
        authkey:"auth auth"
    ){
        code,
        url,
        msg
    }
}' https://domain:port/ceres

响应示例(成功)

{
    "data": {
        "init_streaming": {
            "code": 0,
            "url": "rtsp://192.168.55.10:8554/de89bbd28252c7bde7e09223f078529f85279e86",
            "msg": ""
        }
    }
}

(二)init_streaming_v3

通知ceres从设备拉流并获取拉流URL,适配P2P场景下基于 avtoken/identity 的认证方式,支持实时流和回放流拉取。

输入参数

参数名类型必选说明备注
devicestring设备的UID,长度为20位或40位核心标识参数
avtokenstring[P2P] 连线 avClientStart 中的 avtoken/av password(AVAPI)P2P场景必填
identitystring[P2P] 连线 avClientStart 中的 account 或 identity(AVAPI)P2P场景必填
protocolstring流格式,可选值:rtsp(rtsp over TLS)、hls仅支持指定的两种格式
realmstringrealm,客户向TUTK申请身份校验核心参数
statestring客户自定义信息,用于第三方验证自定义校验字段
authkeystring[P2P] 设备 loginEx 的连线密码,使用 login 方式则无需填写可选参数
avTypestring[P2P] av通道创建验证的密码类型,可选值:authToken、authPass可选参数
authTokenstring第三方 auth 的 token可选参数
authTypestringauthToken 的类型,如:Bearer 或 JWT与 authToken 配套使用
channelint设备的通道默认使用默认通道
playbackFilestring回放的文件名回放场景必填
playbackChannelint回放的通道回放场景必填
playbackTimestampint回放的时间戳,最早不超过1年回放场景必填

返回值

参数名类型描述
codestring小于0失败,0为成功
urlstring拉流的地址(成功时返回有效地址,失败时为空字符串)
msgstring失败的错误信息(成功时为空字符串)

请求示例(curl)

curl -XPOST -d 'query {
    init_streaming_v3(
        device:"device UID",
        authToken:"dm verify token",
        authType:"Bearer",
        avtoken:"user",
        authkey:"secret",
        avType:"authToken",
        protocol:"rtsp",
        identity:"admin",
        realm:"rd",
        state:"state"
    ){
        code,
        url,
        msg
    }
}' https://domain:port/ceres

响应示例(成功)

{
    "data": {
        "init_streaming_v3": {
            "code": 0,
            "url": "rtsp://192.168.55.10:8554/de89bbd28252c7bde7e09223f078529f85279e86",
            "msg": ""
        }
    }
}

(三)init_streaming_v4

通知ceres从设备拉流并获取拉流URL,适配基于设备 credential 的认证方式,支持实时流和回放流拉取,配置更简洁。

输入参数

参数名类型必选说明备注
devicestring设备的UDID核心标识参数
credentialstring设备的连线凭证/秘钥:credential认证核心参数
protocolstring流格式,可选值:rtsp(rtsp over TLS)、hls仅支持指定的两种格式
realmstringrealm,客户向TUTK申请身份校验核心参数
statestring客户自定义信息,用于第三方验证自定义校验字段
authTokenstring第三方 auth 的 token可选参数
authTypestringauthToken 的类型,如:Bearer 或 JWT与 authToken 配套使用
channelint设备的通道默认使用默认通道
playbackFilestring回放的文件名回放场景必填
playbackChannelint回放的通道回放场景必填
playbackTimestampint回放的时间戳,最早不超过1年回放场景必填

返回值

参数名类型描述
codestring小于0失败,0为成功
urlstring拉流的地址(成功时返回有效地址,失败时为空字符串)
msgstring失败的错误信息(成功时为空字符串)

请求示例(curl)

curl -XPOST -d 'query {
    init_streaming_v4(
        authToken:"dm verify token",
        authType:"Bearer",
        device:"device UID",
        credential:"credential",
        protocol:"rtsp",
        realm:"rd",
        state:"state"
    ){
        code,
        url,
        msg
    }
}' https://domain:port/ceres

响应示例(成功)

{
    "data": {
        "init_streaming_v4": {
            "code": 0,
            "url": "rtsp://192.168.55.10:8554/de89bbd28252c7bde7e09223f078529f85279e86",
            "msg": ""
        }
    }
}

(四)terminate_streaming

通知ceres停止拉流,释放相关连接资源。

输入参数

参数名类型必选说明备注
devicestringdevice UID核心标识参数
statestringstate, user info自定义校验字段
protocolstring流格式,可选值:rtsp(rtsp over TLS)、hls可选参数,指定需终止的流格式
authTokenstringauthToken, use to validate可选参数,用于验证
authTypestringthe token type, ex Bearer or JWT与 authToken 配套使用
playbackFilestringthe filename of the playback回放流终止时必填

返回值

参数名类型描述
codestring小于0失败,0为成功
msgstring失败的错误信息(成功时为空字符串)

请求示例(curl)

curl -XPOST -d 'query {
    terminate_streaming(
        authToken:"dm verify token",
        authType:"Bearer",
        device:"device UID",
        state:"state"
    ){
        code,
        msg
    }
}' https://domain:port/ceres

响应示例(成功)

{
    "data": {
        "terminate_streaming": {
            "code": 0,
            "msg": ""
        }
    }
}

三、错误码说明

HTTP错误码:400(请求错误),具体错误原因通过返回体中的 code 字段和 msg 字段说明。

错误码(code)错误消息(msg)说明
0""(空字符串)Success(操作成功)
-1设备连线失败SDK返回报错,或者已经有在拉取其他格式的流
-2协议不支持目前只支持 hls 或者 rtsp(rtsp over TLS)
-3验证失败第三方验证失败
-4参数错误部分参数错误

错误响应示例

{
    "data": {
        "init_streaming": {
            "code": -3,
            "msg": "verify error",
            "url": ""
        }
    }
}

四、备注信息

(一)设备规格

图像编码:H.264

音频编码:AAC ADTS(支持 8k / 44.1k / 48k Hz 采样率)

(二)自动关闭情形

1. RTSP 流:1分钟内未被使用,将自动关闭连接;

2. HLS 流:30秒内未收到 m3u8 请求,将自动关闭连接;

3. 每个设备当前播放只支持一种流格式,如果已经在播放 RTSP,那么另外一个客户的想要 HLS 流是不被允许;

4. 同个客户端需重新连接设备拉流时,需调用 terminate_streaming 关闭上次连接,或等待1分钟超时;

5. 服务器如果30秒内没有收到设备任何数据,将关闭连接。

(三)测试推荐格式

分辨率:1080p

帧率:25 fps

音频:AAC(8k Hz 采样率)

(四)RTSP 流测试方法

当前返回的 RTSP 流为 SSL 加密格式,无法用一般的播放器直接播放,需通过以下步骤测试:

1. 使用 stunnel 工具将加密的 RTSP 流代理为本地裸流;

2. 播放器连接本地代理的裸流地址进行播放。

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部