控制台指南

最佳实践

开发者指南

数据湖存储

API 文档

SDK 文档

数据库文档捉虫大赛邀您参加,好礼多多> HOT

功能描述

本接口用于提交一个直播流审核任务。直播流审核功能为异步任务方式,您可以通过提交直播流审核任务审核您的直播流,然后通过查询直播流审核任务接口查询审核结果。

该接口支持情况如下:

说明:

  • 支持审核视频直播,例如娱乐直播、线上授课等场景。
  • 支持审核语音直播,例如语音聊天房、在线会议等场景。
  • 支持对直播流进行自动检测,从 OCR 文本识别、物体检测(实体、广告台标、二维码等)、图像识别及音频审核四个维度,通过深度学习技术,识别直播流中的违规内容。
  • 支持设置回调地址 Callback 获取检测结果,或通过 查询直播审核任务结果 主动轮询获取审核结果详情。
  • 支持识别多种违规场景,包括:色情、违法、广告等场景。
  • 支持根据不同的业务场景 配置自定义的审核策略
  • 支持用户 自定义配置风险库,打击自定义违规内容。

费用说明

直播流的审核分为直播画面审核直播声音审核,其中:

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

直播审核不会产生截帧费用,已合并至审核费用中。

限制说明

  • 直播流时长支持:5小时以内
  • 直播流分辨率支持:最大支持1920x1080 (1080p)。
  • 支持的直播流媒体协议:rmtp、hls、http、https 等主流协议。
  • 默认并发审核路数限制:10路,超过并发审核路数,接口会返回错误。

推荐使用 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>

说明:

请求头

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

请求体

该请求操作的实现需要有如下请求体。

<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>

目录