human: 如何处理七牛云的智能多媒体服务数美视频流审核

gpt: [智能多媒体服务](https://developer.qiniu.com/dora) > API 文档 > Open API >数美视频流审核

#  数美视频流审核

最近更新时间: 2021-08-12 10:16:03

# 功能描述

本功能基于先进的人工智能技术，精准识别各类场景涉政、色情、暴恐、垃圾广告、Logo水印等违规内容，帮助您提前防御内容风险，提高审核效率，净化网络环境，提升用户体验。

# 接口规格

## 提交视频流识别请求

**请求URL** : `https://censor-open.qiniuapi.com/anti_fraud/v3/videostream`

**字符编码格式** : 请求及返回结果都使用 UTF-8 字符集进行编码

**请求方法** : POST

**建议超时时长** : 3s

### 请求参数

放在 HTTP Body 中，采用 Json 格式，具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
imgType | string | Y | 视频流截帧识别类型，可选值:   
DEFAULT:默认识别涉政、色情、广告，取值为POLITICS_PORN_AD，DEFAULT只能单独 使用不能连接其他类型，否则DEFAULT失效  
POLITICS:涉政识别  
PERSON:涉政人物识别  
VIOLENCE:暴恐识别  
PORN:色情识别  
AD:广告识别  
LOGO:视频水印logo识别  
BEHAVIOR:不良场景识别，支持吸烟、喝酒、赌博、吸毒、避孕套和无意义画面  
通过下划线连接，如AD_PORN_POLITICS用于广告、色情和涉政组合识别  
audioType | string | Y | 视频流中的音频流识别类型，可选值:   
DEFAULT:默认识别涉政、色情、广告，等价于POLITICAL_PORN_AD  
POLITICAL:涉政识别  
PORN:色情识别  
AD:广告识别  
MOAN:娇喘识别  
NONE:不识别音频  
如需做组合识别，通过下划线连接即可，例如 POLITICAL_PORN_MOAN用于涉政、色情和娇喘识别。  
imgCallback | string | Y | 图片回调地址，将视频流中截帧图片的检测结 果通过该地址回调给用户。  
audioCallback | string | N | 音频回调地址，将视频流中音频的检测结果通 过该地址回调给用户;   
audioType值不为NONE时必传。  
data | json_object | Y | 请求数据，最长1MB，详细内容参见下表  
  
其中，data的内容如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
url | string | Y | 要检测的视频流url地址，目前仅支持rtmp协议  
tokenId | string | Y | 用户账号标识  
returnAllImg | int | N | 用户可根据需求选择返回不同审核结果的图片，可选值为0 和1，默认值为0。   
0:回调reject、review结果的图片审核信息  
1:回调所有结果的图片审核信息  
streamName | string | N | 视频流名称  
returnAllText | bool | N | 取值为true时返回全量的音频流片段识别结果和文本内容;   
取值为false时只返回有风险(riskType为REJECT)的音频流片段识别结果和文本内容，默认是false  
detectFrequency | float | N | 视频流截帧频率，取值范围:1-60(秒/帧)，默认为3  
room | string | N | 直播间/游戏房间编号，可针对单个房间制定不同的策略;  
  
### 返回参数

放在 HTTP Body 中，采用 Json 格式，具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
code | int | Y | 返回码  
message | string | Y | 返回码详情描述  
entryId | string | Y | 请求唯一标识，建议保存可用于关闭视频流  
  
## 异步回调识别结果

**支持协议** : HTTP或HTTPS

**字符编码格式** : 请求及返回结果都使用UTF-8字符集进行编码

**请求方法** : POST

**建议超时时长** : 5s

**返回字段** :  
放在 HTTP Body 中，采用 Json 格式，具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
code | int | Y | 返回码  
message | string | Y | 返回码详情描述  
entryId | string | Y | 请求唯一标识  
riskLevel | string | N | 风险级别(code为1100时存在)，可能返回值:   
PASS:正常内容  
REVIEW:疑似违规内容  
REJECT:违规内容  
contentType | int | Y | 用来区分音频和图片回调，可能取值为1和2。   
1:该回调为图片回调  
2:该回调为音频回调  
detail | json_object | N | 视频流中截帧图片或者音频片段的风险详 情(code 为 1100 时存在)  
  
其中，在图片回调(contentType 为 1)时，detail 内容如下

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
room | string | N | 房间号，当客户传入时返回该字段  
requestParams | json object | Y | 返回请求参数data中的所有字段  
imgUrl | string | Y | 截帧图片url地址，有效时间30分钟  
beginProcessTime | int | Y | 截帧生成时间(13位时间戳)  
finishProcessTime | int | Y | 检测完成时间(13位时间戳)  
imgTime | string | Y | 视频流截帧图片违规发生的时间(绝对时间)  
riskType | int | Y | 标识风险类型，可能取值:   
0: 正常  
100:涉政  
200:色情  
210:性感  
300:广告  
310:二维码  
320:水印  
400:暴恐  
500:违规  
510:不良场景  
700:黑名单  
710:白名单  
800:高危账号  
900:自定义  
model | string | Y | 策略规则标识，用来标识命中的策略规则  
descriptionV2 | string | N | 新版策略规则风险原因描述  
matchedItem | string | N | 命中的具体敏感词(该参数仅在命中敏感词时存在)  
matchedList | string | N | 命中敏感词所在的名单名称(该参数仅在命中敏感词时存在)  
matchedDetail | string | N | 命中的敏感词详请  
imgText | string | N | 视频中画面识别出的文字内容  
  
其中，在音频回调(contentType 为 2)时，detail 内容如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
audioText | string | Y | 音频转译文本结果  
audioTime | int | N | 整段音频的音频时长，单位秒，code为1100时存在  
labels | string | N | 音频片段风险原因汇总  
detail | json_array | N | 风险详情  
gender | json_object | N | 性别标签与概率值  
tags | json_array | N | 音色标签与概率值列表  
callbackParam | json_object | Y | 客户传入的透传字段  
  
detail 数组中每一项的具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
room | string | N | 房间号，当客户传入时返回该字段  
requestParams | json object | Y | 返回请求参数data中的所有字段  
audioUrl | string | Y | 视频流中音频流片段的url地址，有效时间30分钟  
audioStartTime | string | Y | 视频流中音频违规内容开始时间(绝对时间)  
audioEndTime | string | Y | 视频流中音频违规内容结束时间(绝对时间)  
riskType | int | Y | 风险类型，可能取值:   
0:正常  
100:涉政  
120:国歌  
200:色情  
210:辱骂  
250:娇喘  
300:广告  
700:黑名单  
900:自定义  
matchedItem | string | N | 音频中可能出现的敏感词  
descriptionV2 | string | Y | 风险原因描述  
isSing | int | N | type取值包含SING时存在，取值0表示检测不存在唱歌片段，取值1表示检测存在唱歌片段  
language | json_array | N | 语种标签与概率值列表  
audioText | string | Y | 音频片段对应的文本内容  
  
language 数组中每一项具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
label | int | Y | 语种识别类别标识，可能取值:   
0:普通话  
1:英语  
2:粤语  
confidence | int | Y | 对应语种标签可能性大小，取值0-100，数值越高表示概率越大。  
  
## 关闭视频流识别

**请求URL** : `https://censor-
open.qiniuapi.com/anti_fraud/v3/finish_videostream`

**字符编码格式** : 请求及返回结果都使用UTF-8字符集进行编码

**请求方法** : POST

**建议超时时长** : 5s

## 请求参数

放在 HTTP Body 中，采用 Json 格式，具体参数如下:

参数名称 | 类型 | 是否必选 | 说明  
---|---|---|---  
entryId | string | Y | 音频唯一标识，用于查询识别结果  
  
# 示例

## 请求示例

    
    
    POST /anti_fraud/v3/videostream HTTP/1.1
    Host: censor-open.qiniuapi.com
    Content-Type: application/json
    Authorization: Qiniu YnxrxOSvGotRZpqkZnMzl_euuoqRzOKUd6zwbRju:r6a-o2UpBg6A4puIMnkCExH8lE8=
    
    {
        "audioCallback": "http://xxx",
        "audioType": "PORN",
        "data":{
            "channel": "VIDEOSTREAM",
            "returnAllImg": 1,
            "returnAllText": true,
            "room": "001", 
            "tokenId": "1157893895",
            "url": "rtmp://xxxx"
        },
        "imgCallback":"http://xxxxxxxxx",
        "imgType": "DEFAULT"
    }
    

## 返回示例

    
    
    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "code":1100,
        "message":"成功", 
        "entryrid":"5564f430ee6a1adb40f06d768b40316b",
    }
    

## 回调示例（图像内容)

    
    
    POST /xxxx HTTP/1.1
    Host: xxxx
    Content-Type: application/json
    
    {
        "code":1100,
        "message":"成功", 
        "entryId":"b891cf2d82e214de45df33fc2bea4875",
        "riskLevel":"REJECT",
        "contentType":1,
        "detail":{
            "descriptionV2":"正常",
            "imgText":"ocr123 你好",
            "imgTime":"2019-09-20 14:53:25",
            "imgUrl":"http://yyyyyyyyyyyyyyyyy.jpg",
            "matchedDetail":"[{"listId":"0b5d2ed695d40c0aa51e2b35fb51763d","matchedFiled":["text"],"name":"涉政测试","organization":"RlokQwRlVjUrTUlkIqOg","words":[" 你好"]}]",
            "matchedItem":"你好",
            "matchedList":"涉政测试",
            "model":"M02601",
            "polityName":"你好",
            "requestParams":{
                "channel":"VIDEOSTREAM",
                "returnAllImg":1,
                "returnAllText":true,
                "room":"001",
                "tokenId":"1157893895",
                "url":"rtmp://xxxxxxx"
            },
            "riskType":100,
            "room":"001"
        }
    }
    

## 回调示例（音频内容)

    
    
    POST /xxxx HTTP/1.1
    Host: xxxx
    Content-Type: application/json
    
    {
        "code":1100,
        "message":"成功", 
        "entryId":"b891cf2d82e214de45df33fc2bea4875",
        "riskLevel":"REJECT",
        "contentType":2,
        "detail":{
            "audioEndTime":"2019-09-20 15:27:35",
            "audioStartTime":"2019-09-20 15:27:25",
            "audioText":"老婆",
            "audioUrl":"http://xxxxxxxxxxx.mp3",
            "model":"M02101",
            "requestParams":{
                "channel":"VIDEOSTREAM",
                "returnAllImg":1,
                "returnAllText":true,
                "room":"001",
                "tokenId":"1157893895",
                "url":"rtmp://xxxxxxx"
            },
            "riskType":200,
            "room":"001"
        }
    }
    

# 错误码

Code | Message  
---|---  
1100 | 成功  
1901 | QPS受限  
1902 | 参数不合法  
1903 | 服务失败  
1911 | 下载超时  
91xx | 内部错误  
  
以上内容是否对您有帮助？