数美智能视频流识别产品API文档#


版权所有 翻版必究


目录

视频流上传请求#

接口描述#

该接口用于提交视频流鉴定等相关信息,稳定拉流后将持续回调对应的识别结果至指定的callback地址。

请求URL:#

集群URL支持产品列表
北京http://api-videostream-bj.fengkongcloud.com/videostream/v4中文视频流
上海http://api-videostream-sh.fengkongcloud.com/videostream/v4中文视频流
新加坡http://api-videostream-xjp.fengkongcloud.com/videostream/v4中文视频流
英语视频流
阿语视频流
硅谷http://api-videostream-gg.fengkongcloud.com/videostream/v4中文视频流
英语视频流
阿语视频流
印度http://api-videostream-yd.fengkongcloud.com/videostream/v4中文视频流

请求方法:#

POST

支持协议#

HTTPHTTPS

字符编码:#

UTF-8

建议超时时间:#

7s

请求参数:#

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

请求参数名类型参数说明传入说明规范
accessKeystring公司密钥必传参数数美分配
appIdstring应用标识必传参数该参数传递值可与数美协商
eventIdstring事件标识必传参数用于区分场景数据,可选值:
video:智能视频识别
default:默认事件
live:交友秀场
ecommerce:电商直播
education:教育场景
presision:默认高准确
recall:默认高召回
imgTypestring视频中的画面需要识别的监管类型,和imgBusinessType至少传一个非必传参数监管一级标签
可选值:
POLITICS:涉政识别
VIOLENCE:暴恐识别
BAN:违禁识别
PORN:色情识别
AD:广告识别
SPAM:机器灌水识别
OCR:图片中的文字风险识别
如果需要识别多个功能,通过下划线连接,如AD_PORN_POLITICS用于广告、色情和涉政组合识别
audioTypestring视频流中的音频需要识别的监管类型,和audioBusinessType至少传一个非必传参数监管一级标签
可选值:
POLITICAL:涉政识别
PORN:色情识别
AD:广告识别
MOAN:娇喘识别
AUDIOPOLITICAL:声音涉政
NONE:不检测音频
如需做组合识别,通过下划线连接即可,例如POLITICAL_PORN_MOAN用于广告、色情和涉政识别
imgBusinessTypestring视频中的画面需要识别的业务类型, 和imgType至少传一个非必传参数业务一级标签
可选值:
SCREEN:特殊画面识别
SCENCE:场景画面识别
QR:二维码识别
FACE:人脸识别
QUALITY:图像质量识别
MINOR:未成年人识别
LOGO:商企LOGO识别
BEAUTY:颜值识别
OBJECT:物品识别
STAR:公众人物识别
如需做组合识别,通过下划线连接即可,例如QR_FACE_MINOR用于二维码、人脸和未成年人识别
audioBusinessTypestring视频流中的音频需要识别的业务类型,和audioType至少传一个非必传参数业务一级标签
可选值:
SING:唱歌识别
LANGUAGE:语种识别
MINOR:未成年人识别
GENDER:性别识别
TIMBRE:音色识别,需要同时传入GENDER才能生效
imgCallbackstring图片回调地址必传参数将视频流中截帧图片的检测结果通过该地址回调给用户
audioCallbackstring音频回调地址非必传参数将视频流中音频片段的检测结果通过该地址回调给用户;需要识别音频时必传
datajson_object请求数据内容,必传参数最长1MB,其中data内容如下

其中,data的内容如下:

请求参数名类型参数说明传入说明规范
langstring语种必传参数可选值如下:
zh:中文
en:英语
ar:阿语
默认值:zh
tokenIdstring客户端用户账号唯一标识必传参数用于用户行为分析,建议传入用户UID; 最长40位
streamTypestring视频流类型必传参数可选值为:
NORMAL:普通流地址,目前支持rtmprtmpshlshttphttps协议
AGORA:声网审核
TRTC:腾讯审核
ZEGO:即构审核
agoraParamjson_object声网流参数非必传参数要检测的声网流参数(当streamType为AGORA时必传),详见agoraParam说明
trtcParamjson_object腾讯流参数非必传参数要检测的TRTC流参数(当streamType为TRTC时必传),详见trtcParam说明
zegoParamjson_object即构流参数非必传参数要检测的即构流参数(当streamType为ZEGO时必传),详见zegoParam说明
urlstring要检测的视频url地址非必传参数要检测的流地址url参数(当streamType为NORMAL时必传)
streamNamestring视频流名称非必传参数用于后台界面展示,建议传入
ipstring客户端IP非必传参数该参数用于IP维度的用户行为分析,同时可用于比对数美IP黑库
returnAllImgint用户可根据需求选择返回不同审核结果的图片非必传参数可选值如下:(默认值为0
0:回调reject、review结果的图片审核信息
1:回调所有结果的图片审核信息
returnAllTextint返回音频流片段识别结果的风险等级非必传参数可选值如下:(默认值为0)
0:返回风险等级为非pass的音频片段与文本内容
1:返回所有风险等级的音频片段与文本内容
returnPreTextint非必传参数可选值如下:(默认值为false
true:返回的content字段包含违规音频前一分钟文本内容
false:返回的content字段只包含违规音频片段文本内容
returnPreAudioint非必传参数可选值如下:(默认值为false
true:返回违规音频前一分钟音频链接
false:只返回违规片段音频链接
detectFrequencyfloat截帧频率间隔非必传参数单位为秒,取值范围为0.5~60s;如不传递默认5s截帧一次
detectStepint视频流截帧图片检测步长非必传参数已截帧图片每个步长只会检测一次,取值大于等于1。
roomstring直播间/游戏房间编号非必传参数可针对单个房间制定不同的策略;(使用声网协议的用户建议传入)
extrajson_object扩展信息非必传参数详见extra说明

data 中,extra的内容如下

请求参数名类型参数说明传入说明规范
passThroughjson_object透传字段非必传参数该字段内容会随着回调结果一起原样返回

其中,agoraParam内容如下:

请求参数名类型参数说明传入说明规范
appIdstring声网提供的应用标识必传参数
channelstring声网提供的频道名必传参数
tokenstring非必传参数安全要求较高的用户可以使用 token,获取方式详见声网文档token生成方式:https://docs.agora.io/cn/Recording/token
channelProfileint声网录制的频道模式可选值如下:(默认值为0
0: 通信(默认),即常见的 1 对 1 单聊或群聊,频道内任何用户可以自由说话;
1: 直播,有两种用户角色: 主播和观众。
uidint用户ID非必传参数32位无符号整数。当token存在时,必须提供生成token时所使用的用户ID。注意,此处需要区别实际房间中的用户uid,提供给服务端录制所用的uid不允许在房间中存在

其中,trtcParam内容如下:

请求参数名类型参数说明传入说明规范
sdkAppIdintY必传参数腾讯提供的sdkAppId
demoSencesintY必传参数录制类型可选值:
2:分流录制
4:合流录制
userIdstringY必传参数分配给录制段的userId,限制长度为32bit,只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符
userSigstringY必传参数录制userId对应的验证签名,相当于登录密码
roomIdintY非必传参数房间号码,取值范围:【1-4294967294】roomId与strRoomId必传一个,若两者都有值优先选用roomId 注意:目前一个房间最多只能审核8个用户
strRoomIdstringY必传参数房间号码取值说明:只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符,若您选用strRoomId时,需注意strRoomId和roomId两者都有值,优先选用roomId

其中,data.zegoParam内容如下:

请求参数名类型参数说明传入说明规范
tokenIdstringZego鉴权token必传参数zego提供的identity_token身份验证信息,用于token登陆(强烈建议每次开流主动调用zego接口获取新的token)
streamIdstringZego流Id必传参数Zego的流ID
testEnvbool是否使用zego测试环境非必传参数可选值如下:(默认值为false
true:测试环境
false:正式环境

返回参数#

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

返回结果参数名参数类型参数说明是否必返规范
requestIdstring本次请求的唯一标识请求唯一标识
codeint请求返回码详见接口响应码列表
messagestring请求返回描述,和请求返回码对应详见接口响应码列表
detailjson_object描述详细信息

其中,detail结构如下:

参数名称参数类型参数说明是否必返规范
errorCodeint状态码1001:重复推流
dupRequestIdstring表示重复的requestId
当errorCode为1001,表示重复推流时,会返回dupRequestId字段
例如当第一次请求的时候没有收到返回,但该音频流实际已经开始审核了,没有requestId无法主动关闭审核
可以再次请求,收到重复推流的信息,通过返回的dupRequestId调用关闭审核接口

异步回调结果#

接口描述#

用户如果需要服务端主动对视频检测结果进行回调,则需要在请求参数中指定回调协议接口URL callback参数,服务端根据该参数在视频审核完成后,主动回调用户。

请求方法:#

POST

字符编码:#

UTF-8

建议超时时间:#

5s

回调策略#

当用户收到推送结果,并返回HTTP状态码为200时,表示推送成功;否则系统将进行最多20次推送。

回调参数#

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

参数名类型参数说明是否必返规范
requestIdstring本次请求的唯一标识请求唯一标识
codeint请求返回码详见接口响应码列表
messagestring请求返回描述,和请求返回码对应详见接口响应码列表
contentTypeint用来区分音频和图片回调,当code等于1100时返回可能取值如下:
1:该回调为图片回调
2:该回调为音频回调
frameDetailjson_object风险截帧信息当code等于1100时返回,详见frameDetail说明
audioDetailjson_object风险音频片段信息当code等于1100时返回,详见audioDetail说明
auxInfojson_object辅助信息当code等于1100时返回,详见auxInfo说明
tokenProfileLabelsjson_array账号属性标签仅在开启功能时返回,详见tokenProfileLabels说明
tokenRiskLabelsjson_array账号风险标签仅在开启功能时返回,详见tokenRiskLabels说明

其中,auxInfo中的具体内容如下:

参数名类型参数说明是否必返规范
passThroughjson_object透传字段该字段内容与请求参数data中extra的passThrough的值相同

其中,在图片回调时(contentType为1时),frameDetail每个成员的具体内容如下:

参数名类型参数说明是否必返规范
imgUrlstring当前截帧的URL
riskLevelstring当前截帧的处置建议PASS:正常内容
REVIEW:可疑内容
REJECT:违规内容
riskLabel1string各个一级标签之间是并列的关系,当riskLevel为PASS时返回normal一级标签
riskLabel2string二级标签归属于一级标签,当riskLevel为PASS时为空二级标签
riskLabel3string三级标签归属于二级标签,当riskLevel为PASS时为空三级标签
riskDescriptionstring标签解释对于命中用户自定义名单时返回:命中自定义名单;当riskLevel为PASS时返回:正常;其他情况展现形式为一级标签:二级标签:三级标签的中文名
riskDetailjson_object风险详情信息详见riskDetail说明
allLabelsjson_array全部的风险标签列表详见allLabels说明
businessLabelsjson_array业务标签列表,传入imgBusinessType时返回详见businessLabels说明
auxInfojson_object其他辅助信息详见auxInfo说明

frameDetail中auxInfo的内容如下:

imgTimefloat截帧图片发生时间视频流截帧图片违规发生的时间(绝对时间)
beginProcessTimeint辅助参数开始处理的时间(13位时间戳)
finishProcessTimeint辅助参数结束处理的时间(13位时间戳)
userIdint用户账号标识仅分流情况下存在,返回的userId是实际房间中的用户id,与请求参数中的uid无关。
strUserIdstringtrtc流的用户id字段分流的用户id(TRTC流才会有)
detectTypeint用来区分截帧图片是否过了检测可能取值如下:(仅当请求参数传了detectStep时才会返回该参数)
1:截帧图片过了检测
2:截帧图片没过检测
roomstring房间号

frameDetail中,riskDetail的内容如下:

参数名类型参数说明是否必返规范
riskSourceint风险来源风险来源,可选值:
1000:无风险
10001:文本风险
1002:视觉风险
1003:音频风险
facesjson_array人物信息返回图片中涉政人物的名称及位置信息,详见faces说明
objectsjson_array标识信息返回图片中标识或物品的名称及位置信息,详见objects说明
ocrTextjson_object文字信息返回图片中文字相关信息,详见ocrText说明

riskDetail中,faces数组每个成员的具体内容如下:

参数名类型参数说明是否必返规范
namestring人物名称
locationint_array人物位置信息,四个值代表的是左上角的坐标和右下角的坐标。例如[207,522,340,567],207代表的是左上角的x坐标,522代表左上角的y坐标,340代表的是右下角的x坐标,567代表的是右下角的y坐标位置信息

riskDetail中,objects数组每个成员的具体内容如下:

参数名类型参数说明是否必返规范
namestring标识或物品名称
locationint_array标识或物品位置,四个值代表的是左上角的坐标和右下角的坐标。例如[207,522,340,567],207代表的是左上角的x坐标,522代表左上角的y坐标,340代表的是右下角的x坐标,567代表的是右下角的y坐标位置信息

riskDetail中,ocrText数组每个成员的具体内容如下:

参数名类型参数说明是否必返规范
textstring图片中识别出的文字识别出来所有文字内容
matchedListsjson_array命中的客户自定义名单信息仅在命中客户自定义名单时返回,详见matchedLists说明
riskSegmentsjson_array高风险内容片段在启用涉政、暴恐、违禁、广告等功能时存在,详见riskSegments说明

ocrText中,matchedLists内每个元素详细内容如下:

参数名类型参数说明是否必返规范
namestring客户自定义名单名称
wordsjson_array命中的这个名单中的敏感词信息下标从0开始计数,详见words说明

matchedLists中,words的每个元素详细内容如下:

参数名类型参数说明是否必返规范
wordstring敏感词
positionint_array敏感词所在位置下标从0开始计数

ocrText中,riskSegments的每个元素详细内容如下:

参数名类型参数说明是否必返规范
segmentstring高风险内容片段
positionint_array高风险内容片段所在位置下标从0开始计数

frameDetail中,allLabels数组的每个成员的内容如下:

参数名类型参数说明是否必返规范
riskLabel1string一级风险标签一级风险标签
riskLabel2string二级风险标签二级风险标签
riskLabel3string三级风险标签三级风险标签
riskDescriptionstring风险描述格式为"一级风险标签:二级风险标签:三级风险标签"的中文名称
对于命中用户自定义名单时返回:命中自定义名单
riskLevelstring处置建议PASS:正常内容
REVIEW:可疑内容
REJECT:违规内容
probabilityfloat置信度可选值为0~1,值越大,可信度越高

frameDetail中,businessLabels数组的每个成员的内容如下:

参数名类型参数说明是否必返规范
businessLabel1string一级标签一级标签
businessLabel2string二级标签二级标签
businessLabel3string三级标签三级标签
businessDescriptionstring标签描述格式为"一级标签:二级标签:三级标签"的中文名称
probabilityfloat置信度可选值为0~1,值越大,可信度越高

其中,在音频回调时(contentType为2时),audioDetail每个成员的具体内容如下:

参数名类型参数说明是否必返规范
audioUrlstring音频片段地址
riskLevelstring当前事件的处置建议PASS:正常内容
REVIEW:可疑内容
REJECT:违规内容
riskLabel1string各个一级标签之间是并列的关系,riskLevel为PASS时返回normal一级标签
riskLabel2string二级标签归属于一级标签,当riskLevel为PASS时为空二级标签
riskLabel3string三级标签归属于二级标签,当riskLevel为PASS时为空三级标签
riskDescriptionstring标签解释格式为"一级风险标签:二级风险标签:三级风险标签"的中文名称
对于命中用户自定义名单时返回:命中自定义名单
riskDetailjson_object风险详情信息详见riskDetail说明
allLabelsjson_array全部的风险标签列表详见allLabels说明
businessLabelsjson_array业务标签列表,传入audioBusinessType时返回详见businessLabels说明
auxInfojson_object其他辅助信息详见auxInfo说明

audioDetail中auxInfo的内容如下:

参数名类型参数说明是否必返规范
beginProcessTimeint辅助参数开始处理的时间(13位时间戳)
finishProcessTimeint辅助参数结束处理的时间(13位时间戳)
userIdint声网用户账号标识仅分流情况下存在,返回的userId是实际房间中的用户id,与请求参数中的uid无关。
strUserIdstringtrtc流的用户id字段分流的用户id(TRTC流才会有)
roomstring房间号

audioDetail中,riskDetail的详细内容如下:

参数名类型参数说明是否必返规范
riskSourceint风险来源风险来源,可选值:
1000:无风险
10001:文本风险
1002:视觉风险
1003:音频风险
audioTextstring音频转译文本的结果
matchedListsjson_array命中的客户自定义名单信息命中客户自定义名单时返回,其他时不存在,详见matchedLists说明
riskSegmentsjson_array高风险内容片段在涉政、暴恐、违禁、竞品、广告法等功能的时候存在,详见riskSegments说明

riskDetail中,matchedLists的每个元素详细内容如下:

参数名类型参数说明是否必返规范
namestring客户自定义名单名
wordsjson_array命中的这个名单中的敏感词信息下标从0开始计数,详见words说明

matchedLists中,words的每个元素详细内容如下:

参数名类型参数说明是否必返规范
wordstring敏感词
positionint_array敏感词所在位置下标从0开始计数

riskDetail中,riskSegments的每个元素详细内容如下:

参数名类型参数说明是否必返规范
segmentstring高风险内容片段
positionint_array高风险内容片段所在位置下标从0开始计数

audioDetail中,allLabels数组的每个成员的内容如下:

参数名类型参数说明是否必返规范
riskLabel1string一级风险标签一级风险标签
riskLabel2string二级风险标签二级风险标签
riskLabel3string三级风险标签三级风险标签
riskDescriptionstring风险描述格式为"一级风险标签:二级风险标签:三级风险标签"的中文名称
对于命中用户自定义名单时返回:命中自定义名单
riskLevelstring处置建议PASS:正常内容
REVIEW:可疑内容
REJECT:违规内容
probabilityfloat置信度可选值为0~1,值越大,可信度越高

audioDetail中,businessLabels数组的每个成员的内容如下:

参数名类型参数说明是否必返规范
businessLabel1string一级标签一级标签
businessLabel2string二级标签二级标签
businessLabel3string三级标签三级标签
businessDescriptionstring标签描述格式为"一级标签:二级标签:三级标签"的中文名称
probabilityfloat置信度可选值为0~1,值越大,可信度越高

其中,tokenProfileLabels数组每个成员的具体内容如下:

参数名类型参数说明是否必返规范
label1string一级标签
label2string二级标签
label3string三级标签
descriptionstring标签描述
timestampint打标签时间戳13位Unix时间戳,单位:毫秒

其中,tokenRiskLabels数组每个成员的具体字段同tokenProfileLabels

视频流关闭接口#

接口描述#

该接口用于客户端通知服务端某个视频流已关闭。

请求URL:#

集群URL支持产品列表
北京http://api-videostream-bj.fengkongcloud.com/finish_videostream/v4中文视频流
上海http://api-videostream-sh.fengkongcloud.com/finish_videostream/v4中文视频流
新加坡http://api-videostream-xjp.fengkongcloud.com/finish_videostream/v4中文视频流
英语视频流
阿语视频流
硅谷http://api-videostream-gg.fengkongcloud.com/finish_videostream/v4中文视频流
英语视频流
阿语视频流
印度http://api-videostream-yd.fengkongcloud.com/finish_videostream/v4中文视频流

请求方法:#

POST

支持协议:#

HTTPHTTPS

字符编码:#

UTF-8

建议超时时间:#

1s

请求参数:#

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

请求参数名类型参数说明传入说明规范
accessKeystring公司密钥必传参数用于权限认证,开通账号服务时由数美提供
requestIdstring本次请求的唯一标识必传参数需要关闭视频流的requestId

返回参数#

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

返回结果参数名参数类型参数说明是否必返规范
requestIdstring本次请求的唯一标识请求唯一标识
codeint请求返回码请见接口响应码列表
messagestring请求返回描述,和请求返回码对应请见接口响应码列表

接口响应码列表#

code请求返回码列表如下:

codemessage
1100成功
1901QPS超限
1902参数不合法
1903服务失败
1907获取视频长度超时
9100余额不足
9101无权限操作

示例#

上传接口请求示例#

{
"accessKey": "*********",
"appId": "defaulttest",
"eventId": "VIDEOSTREAM",
"imgType": "POLITICS_VIOLENCE_BAN_PORN_MINOR_AD_SPAM_LOGO_STAR",
"imgBusinessType": "SCREEN_SCENCE_QR_FACE_QUALITY_MINOR_LOGO_BEAUTY",
"audioType": "POLITICAL_PORN_AD_MOAN",
"audioBusinessType": "SING_LANGUAGE_MINOR_GENDER_TIMBRE",
"imgCallback": "http://www.xxx.top/xxx",
"audioCallback": "http://www.xxx.top/xxx",
"data": {
"streamType": "NORMAL",
"tokenId": "123",
"ip": "123.171.34.4",
"detectFrequency": 10,
"detectStep": 1,
"room": "5e1854a6a0a79d0001a09bc3",
"url": "http://rtmp.xxxx.cn/live/3637778raLSXdOdu.flv",
"returnAllImg": 1,
"returnAllText": 1,
"returnPreText": 1,
"returnPreAudio": 1,
"retryTimes": 1,
"lang": "zh",
"extra": {
"passThrough": {
"passThrough1": "111",
"passThrough2": "222",
"passThrough3": "333"
}
}
}
}

上传接口返回示例:#

{
"code":1100,
"message":"正常",
"requestId":"d05f4270374ca516ce7aafc0139afd25"
}

异步回调结果示例:#

{
"code": 1100,
"contentType": 1,
"message": "成功",
"requestId": "1639825145166_vs130_1639825248361471656",
"frameDetail": {
"allLabels": [
{
"riskDescription": "涉政:核心领导:毛泽东",
"riskLabel1": "politics",
"riskLabel2": "hexinlingdao",
"riskLabel3": "maozedong",
"riskLevel": "REJECT"
},
{
"riskDescription": "涉政:涉政:涉政",
"riskLabel1": "politics",
"riskLabel2": "shezheng",
"riskLabel3": "shezheng",
"riskLevel": "REJECT"
}
],
"auxInfo": {
"beginProcessTime": 1639825248361,
"detectType": 1,
"finishProcessTime": 1639825248809,
"imgTime": "2021-12-18 19:00:48.375",
"room": "5e1854a6a0a79d0001a09bc3"
},
"businessLabels": [],
"imgUrl": "http://bj.cos.ap-beijing.xxx.com/image/1639825145166_vs130_1639825248361471656.jpg",
"riskDescription": "涉政:核心领导:毛泽东",
"riskDetail": {
"ocrText": {
"text": "第四页(ban第五页(violence"
},
"riskSource": 1002
},
"riskLabel1": "politics",
"riskLabel2": "hexinlingdao",
"riskLabel3": "maozedong",
"riskLevel": "REJECT"
},
"auxInfo": {
"passThrough": {
"passThrough1": "111",
"passThrough2": "222",
"passThrough3": "333"
}
}
}

关闭接口请求示例:#

{
"accessKey": "4Ky6AV4hE0pWLeG1bXNw",
"requestId": "1639825145166"
}

关闭接口返回示例#

{
"code":1100,
"message":"成功",
"requestId":" a78eef377079acc6cdec24967ecde722"
}

购买咨询