有奖捉虫:云通信与企业服务文档专题,速来> HOT

功能描述

本接口用于提交一个直播流审核任务。直播流审核功能为异步任务方式,您可以通过提交直播流审核任务审核您的直播流,然后通过查询直播流审核任务接口查询审核结果。
该接口支持情况如下:
说明
支持审核视频直播,例如娱乐直播、线上授课等场景。
支持审核语音直播,例如语音聊天房、在线会议等场景。
支持对直播流进行自动检测,从 OCR 文本识别、物体检测(实体、广告台标、二维码等)、图像识别及音频审核四个维度,通过深度学习技术,识别直播流中的违规内容。
支持设置回调地址 Callback 获取检测结果,或通过 查询直播审核任务结果 主动轮询获取审核结果详情。
支持识别多种违规场景,包括:色情、违法、广告等场景。

持根据不同的业务场景 配置自定义的审核策略
支持用户 自定义配置风险库,打击自定义违规内容。

授权说明

授权策略中 action 设置为 ci:CreateAuditingJobs 。查看所有 action
子账号使用异步处理接口时,需要授予 cam:passrole 权限,异步处理接口会通过 CAM 的“角色”进行 COS 的资源读写操作,PassRole 权限用于传递角色。

服务开通

使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶

使用限制

使用该接口时,请先确认相关限制条件。详情请参见 使用限制
直播流时长支持:5小时以内。
直播流分辨率支持:最大支持1920x1080 (1080p)。
支持的直播流媒体协议:rmtp、hls、http、https 等主流协议。
默认并发审核路数限制:10路,超过并发审核路数,接口会返回错误。

费用说明

直播流的审核分为直播画面审核直播声音审核,其中:
直播画面审核:通过直播流截帧将直播流截取为多张图片进行审核。
直播声音审核:将直播流声音分离出来进行音频审核。
每个审核场景单独计费,例如您选择审核涉黄、广告两种场景,则审核1个直播流计2次审核费用。
调用接口会产生 直播审核费用
说明
直播审核不会产生截帧费用,已合并至审核费用中。


推荐使用 SDK

对象存储 SDK 提供了完整的 Demo、自动集成、计算签名等能力。您可通过 SDK 方便快捷地调用接口。点此查看 SDK 文档

请求

请求示例

POST /video/auditing HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml

<body>
说明
Authorization: Auth String (详情请参见 请求签名 文档)。
通过子账号使用时,需要授予相关的权限,详情请参见 数据万象授权粒度详情 文档。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该请求操作的实现需要有如下请求体。
<Request>
<Type>live_video</Type>
<Input>
<Url></Url>
<DataId></DataId>
</Input>
<Conf>
<BizType></BizType>
<Callback></Callback>
<CallbackType></CallbackType>
</Conf>
</Request>
具体的数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Request
直播流审核的具体配置项。
Container
Container 类型 Request 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Type
Request
审核的任务类型,直播流审核固定为 live_video。
String
Input
Request
包含需要审核的直播流信息。
Container
Conf
Request
包含审核规则的配置信息。
Container
StorageConf
Request
包含直播流转存的配置信息。
Container
Container 类型 Input 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Url
Request.Input
需要审核的直播流播放地址,例如 rtmp://example.com/live/123。
String
DataId
Request.Input
该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。
String
UserInfo
Request.Input
自定义字段,可用于辅助行为数据分析。
Container
Container 节点 UserInfo 的内容:
节点名称(关键字)
父节点
描述
类型
是否必选
TokenId
Request.Input.UserInfo
一般用于表示账号信息,长度不超过128字节。
String
Nickname
Request.Input.UserInfo
一般用于表示昵称信息,长度不超过128字节。
String
DeviceId
Request.Input.UserInfo
一般用于表示设备信息,长度不超过128字节。
String
AppId
Request.Input.UserInfo
一般用于表示 App 的唯一标识,长度不超过128字节。
String
Room
Request.Input.UserInfo
一般用于表示房间号信息,长度不超过128字节。
String
IP
Request.Input.UserInfo
一般用于表示 IP 地址信息,长度不超过128字节。
String
Type
Request.Input.UserInfo
一般用于表示业务类型,长度不超过128字节。
String
ReceiveTokenId
Request.Input.UserInfo
一般用于表示接收消息的用户账号,长度不超过128字节。
String
Gender
Request.Input.UserInfo
一般用于表示性别信息,长度不超过128字节。
String
Level
Request.Input.UserInfo
一般用于表示等级信息,长度不超过128字节。
String
Role
Request.Input.UserInfo
一般用于表示角色信息,长度不超过128字节。
String
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
BizType
Request.Conf
表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,例如涉黄、广告、违法违规等,配置指引: 设置审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。
String
Callback
Request.Conf
回调地址,以http://或者https://开头的地址。
String
CallbackType
Request.Conf
回调片段类型,有效值:1(回调全部截帧和音频片段)、2(仅回调违规截帧和音频片段)。默认为 1。
Integer
Container 类型 StorageConf 的具体数据描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
Path
Request.StorageConf
表示直播流所要转存的路径,直播流的 ts 文件和 m3u8 文件将保存在本桶该目录下。m3u8 文件保存文件名为 Path/{$JobId}.m3u8,ts 文件的保存文件名为 Path/{$JobId}-{$Realtime}.ts,其中 Realtime 为17位年月日时分秒毫秒时间。
String

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response>
<JobsDetail>
<DataId></DataId>
<JobId></JobId>
<State></State>
<CreationTime></CreationTime>
</JobsDetail>
<RequestId></RequestId>
</Response>
具体的数据内容如下:
节点名称(关键字)
父节点
描述
类型
Response
直播流审核返回的具体响应内容。
Container
Container 节点 Response 的内容:
节点名称(关键字)
父节点
描述
类型
JobsDetail
Response
直播流审核任务的详细信息。
Container
RequestId
Response
每次请求发送时,服务端将会自动为请求生成一个 ID,遇到问题时,该 ID 能更快地协助定位问题。
String
Container 节点 JobsDetail 的内容:
节点名称(关键字)
父节点
描述
类型
DataId
Response.JobsDetail
请求中添加的唯一业务标识。
String
JobId
Response.JobsDetail
本次直播流审核任务的 ID。
String
State
Response.JobsDetail
直播流审核任务的状态,值为 Submitted(已提交审核)、Success(审核成功)、Failed(审核失败)、Auditing(审核中)其中一个。
String
CreationTime
Response.JobsDetail
直播流审核任务的创建时间。
String

错误码

该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

实际案例

请求

POST /video/auditing HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 166
Content-Type: application/xml

<Request>
<Type>live_video</Type>
<Input>
<Url>rtmp://example.com/live/123</Url>
<DataId>123-fdrsg-123</DataID>
</Input>
<Conf>
<Callback>http://callback.com/</Callback>
<BizType>b81d45f94b91a683255e9a9506f45a11</BizType>
</Conf>
</Request>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 230
Connection: keep-alive
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****

<Response>
<JobsDetail>
<DataId>123-fdrsg-123</DataID>
<JobId>vab1ca9fc8a3ed11ea834c525400863904</JobId>
<State>Submitted</State>
<CreationTime>2021-08-07T12:12:12+0800</CreationTime>
</JobsDetail>
<RequestId>xxxxxxxxxxxxxx</RequestId>
</Response>