功能描述
本接口用于提交一个直播流审核任务。直播流审核功能为异步任务方式,您可以通过提交直播流审核任务审核您的直播流,然后通过查询直播流审核任务接口查询审核结果。该接口支持情况如下:
支持审核视频直播,例如娱乐直播、线上授课等场景。
支持审核语音直播,例如语音聊天房、在线会议等场景。
支持对直播流进行自动检测,从 OCR 文本识别、物体检测(实体、广告台标、二维码等)、图像识别及音频审核四个维度,通过深度学习技术,识别直播流中的违规内容。
支持设置回调地址 Callback 获取检测结果,或通过 查询直播审核任务结果 主动轮询获取审核结果详情。
支持识别多种违规场景,包括:色情、违法、广告等场景。
支持根据不同的业务场景 配置自定义的审核策略。
支持用户 自定义配置风险库,打击自定义违规内容。
授权说明
通过子账号使用时,需要授予
ci:CreateAuditingJobs
权限,详情请参见 数据万象 action。子账号使用异步处理接口时,需要授予
cam:passrole
权限,异步处理接口会通过 CAM 的“角色”进行 COS 的资源读写操作,PassRole 权限用于传递角色, 具体请查看 访问管理-写操作-PassRole 接口。服务开通
使用限制
使用该接口时,请先确认相关限制条件。详情请参见 使用限制。
直播流时长支持:5小时以内。
直播流分辨率支持:最大支持1920x1080 (1080p)。
接口默认并发数量:10。
支持的直播流媒体协议:rmtp、hls、http、https 等主流协议。
默认并发审核路数限制:10路,超过并发审核路数,接口会返回错误。
费用说明
直播流的审核分为直播画面审核、直播声音审核,其中:
直播画面审核:通过直播流截帧将直播流截取为多张图片进行审核。
直播声音审核:将直播流声音分离出来进行音频审核。
每个审核场景单独计费,例如您选择审核涉黄、广告两种场景,则审核1个直播流,计2次审核费用。
调用接口会产生 直播审核费用。
说明
直播审核不会产生截帧费用,已合并至审核费用中。
推荐使用 SDK
请求
请求示例
POST /video/auditing HTTP/1.1Host: <BucketName-APPID>.ci.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>Content-Length: <length>Content-Type: application/xml<body>
说明
请求头
请求体
该请求操作的实现需要有如下请求体。
<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.1Authorization: q-sign-algorithm=sha1&q-ak=****************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.comContent-Length: 166Content-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 OKContent-Type: application/xmlContent-Length: 230Connection: keep-aliveDate: Thu, 15 Jun 2017 12:37:29 GMTServer: tencent-cix-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>