直播内容分析接口
更新时间:2024-11-19
提交直播内容分析(邀测中)
用户提供直播流地址,创建一次直播内容分析。
- 支持RTMP/HTTP拉流;
- 正在分析中的直播(以直播流地址区分)无法再次进行分析;
- 已经分析过的直播(以直播流地址区分,FINISHED/ERROR)可以重新进行分析。
请求语法
PUT /v{version}/stream HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
无
请求体
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 直播地址 | 是 |
preset | String | 分析模板名称 | 否,没有用默认模版,目前仅支持文本、语音、人脸等分析项 |
notification | String | 通知名称,需要先在mca控制台进行配置 | 是 |
intervalInSecond | Integer | 拉流视频间隔,>=1s, 默认为10s | 否 |
description | String | 描述信息 | 否,长度不超过100 |
请求示例
PUT /v1/stream HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "rtmp://test/lssmca_2022",
"notification": "mca_callback",
}
响应头域
无
响应体
参数 | 类型 | 描述 |
---|---|---|
source | String | 直播路径 |
preset | String | 视频分析模版 |
notification | String | 通知名称 |
description | String | 描述信息 |
intervalInSecond | Integer | 拉流视频间隔 |
createTime | Date | 分析创建时间 |
status | String | 分析状态 |
响应示例
HTTP/1.1 200 OK
{
"source": "rtmp://test/lssmca_2022",
"preset": "default",
"notification": "mca_callback",
"intervalInSecond": 10,
"createTime": "2020-11-09T11:13:31Z",
"status": "PROVISIONING"
}
查询直播内容分析基本信息
请求语法
GET /v{version}/stream HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 直播路径 | 是 |
请求体
无
请求示例
GET /v1/stream?source=rtmp://test/lssmca_2022 HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
响应体
参数 | 类型 | 描述 |
---|---|---|
source | String | 直播路径 |
preset | String | 分析模版 |
notification | String | 通知名称 |
description | String | 描述信息 |
intervalInSecond | Integer | 拉流视频间隔 |
createTime | Date | 分析创建时间 |
startTime | Date | 实际开始拉流时间,仅当status=PROCESSING/FINISHED时存在 |
endTime | Date | 实际结束拉流时间,仅当status=FINISHED时存在 |
durationInSecond | Number | 实际已经分析的直播时长,自动将分析失败或者缺失的直播片段移除,仅当status=PROCESSING/FINISHED时存在 |
status | String | 分析状态 |
error | Object | 分析失败信息,仅当status=ERROR时存在 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
响应示例
HTTP/1.1 200 OK
{
"source": "rtmp://test/lssmca_2022",
"preset": "default",
"notification": "mca_callback",
"intervalInSecond": 10,
"createTime": "2020-11-09T12:23:07Z",
"startTime": "2020-11-09T12:23:07Z",
"endTime": "2020-11-09T12:24:32Z"
"durationInSecond": 60,
"status": "FINISHED"
}
结束直播内容分析任务
请求语法
PUT /v{version}/stream HTTP/1.1
host: vca.bj.baidubce.com
authorization: <bce-authorization-string>
content-type: application/json
支持v1
、v2
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
stop | String | 标志参数 | 是,不需要填值 |
请求体
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 直播路径 | 是 |
请求示例
PUT /v1/stream?stop HTTP/1.1
host: vca.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
{
"source": "rtmp://test/lssmca_2022"
}
响应体
无
响应示例
HTTP/1.1 200 OK
直播流分析结果回调格式
通知结果使用POST请求进行回调。
参数说明
参数 | 类型 | 描述 |
---|---|---|
messageId | String | 回调消息ID |
messageBody | String | 回调消息内容Body(json) |
回调结果示例
{
"messageId":"086c404f-407a-4dd5-882b-e85639b00169",
"messageBody":"******"
}
messageBody有下面两种类型。
直播流分段音视频处理结果回调
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
segment | String | 标志参数 | 是,不需要填值 |
请求体
参数 | 类型 | 描述 |
---|---|---|
isSegment | Boolean | 固定值true,表示这是个直播流分段音视频处理结果回调 |
source | String | 直播流地址 |
preset | String | 模板名称 |
notification | String | 通知名称 |
description | String | 视频描述,默认为空字符串,不超过256字符 |
intervalInSecond | Integer | 拉流视频间隔 |
startTime | Date | 实际开始拉流时间 |
segmentStartTimeInSecond | Integer | 在直播中的开始时间(相对于实际开始拉流时间startTime的相对时间) |
segmentEndTimeInSecond | Integer | 在直播中的结束时间(相对于实际开始拉流时间startTime的相对时间) |
status | String | 分析任务状态:FINISHED/ERROR |
results | List | 结果列表,仅仅当status=FINISHED时返回 |
+ type | 枚举,figure/character/speech | 结果类型 |
+ data | String | 结果详情 |
error | Object | 分析失败信息,仅当status=ERROR时存在 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
对于结果类型是figure,data反序列化后结构为:
参数 | 类型 | 描述 |
---|---|---|
results | List | 结果列表 |
+ thumbnailUrl | String | 直播抽帧图片地址 |
+ tags | List | 标签列表 |
++ attribute | String | 标签 |
++ confidence | Double | 置信度 |
++ source | Double | 标签来源 |
++ location | Object | 位置 |
+++ leftOffsetInPixel | Interger | 左上角横坐标 |
+++ topOffsetInPixel | Interger | 左上角纵坐标 |
+++ widthInPixel | Interger | 宽度 |
+++ heightInPixel | Interger | 高度 |
+++ degree | Interger | 角度 |
对于结果类型是character,data反序列化后结构为:
参数 | 类型 | 描述 |
---|---|---|
results | List | 结果列表 |
+ thumbnailUrl | String | 直播抽帧图片地址 |
+ words | List | 文字识别结果 |
++ word | String | 文本 |
++ confidence | Double | 置信度 |
++ rect | Object | 位置 |
+++ leftOffsetInPixel | Interger | 左上角横坐标 |
+++ topOffsetInPixel | Interger | 左上角纵坐标 |
+++ widthInPixel | Interger | 宽度 |
+++ heightInPixel | Interger | 高度 |
对于结果类型是speech,data反序列化后结构为:
参数 | 类型 | 描述 |
---|---|---|
audioUrl | String | 音频地址 |
results | List | 结果列表 |
+ startTimestampInSecond | Integer | 开始时间 |
+ endTimestampInSecond | Integer | 结束时间 |
+ statement | Double | 语音识别结果 |
示例
示例一:成功时回调
{
"isSegment": true,
"source": "rtmp://test/lssmca_2022",
"preset": "default",
"notification": "mca_callback",
"intervalInSecond": 10,
"startTime": "2019-10-09T00:00:00Z",
"segmentStartTimeInSecond": 0,
"segmentEndTimeInSecond": 9,
"status":"FINISHED",
"results":[
{
"type":"figure",
"result": "{\"results\":[{\"thumbnailUrl\":\"http://bj.bcebos.com/bucket/mid/34/1614645627_341.jpg\",\"tags\":[{\"attribute\":\"杨超越\",\"confidence\":34.97,\"source\":\"face_recognition\",\"location\":[{\"leftOffsetInPixel\":368,\"topOffsetInPixel\":168,\"widthInPixel\":92,\"heightInPixel\":91,\"degree\":-1}]}]}]}"
},
{
"type":"character",
"result": "{\"results\":[{\"thumbnailUrl\":\"http://bj.bcebos.com/bucket/mid/34/1614645627_341.jpg\",\"words\":[{\"word\":\"今天要下雨\",\"rect\":{\"leftOffsetInPixel\":220,\"topOffsetInPixel\":112,\"widthInPixel\":198,\"heightInPixel\":42},\"confidence\":0.99}]}]}"
},
{
"type":"speech",
"result": "{\"audioUrl\":\"http://bj.bcebos.com/bucket/mid/1.mp3\",\"results\":[{\"startTimestampInSecond\":0,\"endTimestampInSecond\":5,\"statement\":\"在五四青年节来临之际在中国政法大学建校六十五周年前夕中共中央总书记国家主席中央军委主席习近平三日上午来到中国政法大学考察,\"},{\"startTimestampInSecond\":6,\"endTimestampInSecond\":9,\"statement\":\"习近平代表党中央向全国各族青年致以节日的问候,向全国广大教育,\"}]}"
}
]
}
示例二:失败时回调
{
"isSegment": true,
"source": "rtmp://test/lssmca_2022",
"preset": "default",
"notification": "mca_callback",
"intervalInSecond": 10,
"startTime": "2019-10-09T00:00:00Z",
"segmentStartTimeInSecond": 0,
"segmentEndTimeInSecond": 9,
"status": "ERROR",
"error": {
"code": "InternalError",
"message": "internal error"
}
}
直播流结束回调
请求参数
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
stop | String | 标志参数 | 是,不需要填值 |
请求体
参数 | 类型 | 描述 |
---|---|---|
isSegment | Boolean | 固定值false,表示这是个直播流结束回调 |
source | String | 直播流地址 |
preset | String | 模板名称 |
notification | String | 通知名称 |
description | String | 描述信息 |
intervalInSecond | Integer | 拉流视频间隔 |
createTime | Date | 直播任务创建时间 |
startTime | Date | 实际开始拉流时间 |
endTime | Date | 实际结束拉流时间 |
durationInSecond | Number | 实际直播成功分析时长,自动将分析失败或者缺失的直播片段移除,仅当status=FINISHED时存在 |
status | String | 分析任务状态:FINISHED/ERROR |
示例
{
"isSegment": false,
"source": "rtmp://test/lssmca_2022",
"preset": "default",
"notification": "mca_callback",
"intervalInSecond": 10,
"createTime": "2020-11-09T12:23:07Z",
"startTime": "2020-11-09T12:23:07Z",
"endTime": "2020-11-09T12:24:32Z",
"durationInSecond": 60,
"status": "FINISHED"
}