请求接口#
视频流检测接口,可识别: 截帧画面中,涉政、色情、广告,暴恐等监管风险;同时可结合您的业务场景,识别人脸、LOGO、动植物等业务内容。 音频片段中,涉政、色情、广告等监管风险;同时可结合您的业务场景,识别性别,音色,未成年等业务内容。
接口说明#
接口用于提交视频流鉴定等相关信息,稳定拉流后将持续回调对应的识别结果至指定的callback地址。
接口要求#
通信协议:http或https协议 请求方法:POST方法 字符编码:utf-8 参数格式:所有请求参数和返回参数都是采用json格式
支持协议#
普通流地址,目前支持rtmp、rtmps、hls、http、https协议,支持flv,m3u8等格式。
回调机制#
当用户收到推送结果,并返回HTTP状态码为200时,表示推送成功;否则系统将进行重试推送(直至达到重试次数上限)重试逻辑为间隔[5,10,15,20,25,30,35,40,45,50,55,60]秒后重试,12次之后依然失败则不在重试
重试拉流机制#
为防止网络异常导致的拉流失败问题发生,数美视频流服务设置了拉流失败后的重试机制,具体机制如下: 普通流、即构/腾讯/火山流:总共会重试12次,每次持续五分钟,时间间隔为【5、10、15、20.....60秒】。例如,数美会先进行5分钟的持续拉流,拉不到的话,间隔5秒后再持续5分钟拉流,如果还拉不到则间隔10秒后再次进行5分钟拉流,以此类推。 声网流:无重试,拉流5分钟超时后断开。
超时时间#
建议超时时间:7s 内部处理的超时时间为3s,且会重试一次。正常接口返回时间100ms之内
历史版本#
历史版本请求#
请求地址#
请求参数#
参数名称 | 类型 | 是否必传 | 最大长度 | 参数说明 |
---|---|---|---|---|
accessKey | string | 是 | 20 | 公司密钥。用于权限认证,开通服务时由数美提供 |
eventId | string | 是 | 64 | 事件标识。需要与数美约定好取值。 |
appId | string | 是 | 64 | 应用标识。此字段强校验,需要提前与数美约定好取值。 |
imgType | string | 否 | 64 | 视频流中的画面需要识别的监管类型,和imgBusinessType至少传一个。 可选值: POLITY:涉政识别 EROTIC:色情&性感违规识别 VIOLENT:暴恐&违禁识别 QRCODE:二维码识别 ADVERT:广告识别 IMGTEXTRISK:图片文字违规识别 如果需要识别多个功能,通过下划线连接,如POLITY_QRCODE_ADVERT用于涉政、二维码和广告组合识别 |
audioType | string | 否 | 64 | 视频流中的音频需要识别的监管类型,和audioBusinessType至少传一个。 可选值: POLITY:涉政识别 EROTIC:色情识别 ADVERT:广告识别 DIRTY: 辱骂识别 ADLAW:广告法 MOAN:娇喘识别 AUDIOPOLITICAL:声音涉政 ANTHEN:国歌识别 NONE:不检测音频 如需做组合识别,通过下划线连接即可,例如POLITY_EROTIC用于涉政和色情识别 |
imgBusinessType | string | 否 | 128 | 视频流中的画面需要识别的业务类型, 和imgType至少传一个,可选值见业务标签类型 |
audioBusinessType | string | 否 | 128 | 视频流中的音频业务识别类型,和audioType至少传一个。 可选值: SING:唱歌识别 LANGUAGE:语种识别(中文、英文、粤语、藏语、维吾尔语、朝鲜语、蒙语、其他) MINOR:未成年人识别 GENDER:性别识别 TIMBRE:音色识别,需要同时传入GENDER才能生效, APPNAME:app名称识别。 如果需要识别多个功能,通过下划线连接 |
imgCallback | string | 是 | 1024 | 图片回调地址 将视频流中截帧图片的检测结果通过该地址回调给用户 |
audioCallback | string | 否 | 1024 | 音频回调地址 将视频流中音频片段的检测结果通过该地址回调给用户;需要识别音频时必传 |
data | object | 是 | - | 请求的数据内容,大小不超过1M |
streamType | string | 是 | - | 视频流类型 可选值为: NORMAL:普通流地址,目前支持rtmp、rtmps、hls、http、https协议 AGORA:声网审核 TRTC:腾讯审核 ZEGO:即构审核 VOLC:火山引擎审核 ALI:阿里云审核 注意:使用RTC的SDK录制方案的时候,可能会在RTC侧产生额外的录制费用,具体费用请咨询相关RTC厂商 |
tokenId | string | 是 | 64 | 用户账号标识。建议传入用户ID,可用于灌水、广告等行为维度的风险识别。 |
anchorName | string | 否 | - | 主播名称,一般用于人审需要字段 |
audioDetectStep | int32 | 否 | - | 视频流中的音频审核步长。单位为个,取值范围为1-36整数,取1表示跳过一个10S的音频片段审核,取2表示跳过二个,以此类推。不使用该功能时音频内容全部过审 |
detectFrequency | int32 | 否 | - | 视频流中的画面截帧频率间隔。单位为秒,取值范围为1~60秒,遇到小数向下取整,不足1的按照1秒处理,如不传递默认3秒截帧一次。 |
detectStep | int32 | 否 | - | 视频流截帧图片检测步长。已截帧图片每个步长只会检测一次,取值大于等于1。不使用该功能时所有截帧全部过审 |
deviceId | string | 否 | 128 | 数美设备指纹标识。由数美SDK生成,用于用户行为分析。 |
gender | string | 否 | - | 用户性别,建议值: male:男性 female:女性 ambiguity:性别不明 |
imgBusinessDetectStep | int32 | 否 | - | 图片业务标签检测步长。每个步长只会检测一次imgBusinessType,取值大于等于1。< >默认值=1,代表所有片段都审核业务标签。 |
imgCompareBase | string | 否 | 1024 | 要检测比对的基准图片。请求参数businessType字段包含标签`FACECOMPARE`时存在 图片的url链接 支持格式: jpg,jpeg,png,webp,gif,tiff,tif,heif 建议图片像素不小于256*256 基准图暂时不支持动图格式 |
ip | string | 否 | 64 | 客户端公网IP地址。该参数用于IP维度的用户行为分析。 |
lang | string | 否 | - | 语言类型。可指定对截帧及音频片段内容检测的语种类型(默认为中文),可选值: zh:中文 en:英文 ar:阿拉伯语 |
level | int32 | 否 | - | 用户等级,针对不同等级的用户可配置不同拦截策略。可选值:0:最低级用户,典型如新注册、完全不活跃或等级为0的用户等; 1:较低级用户,典型如低活跃或低等级用户等; 2:中等级用户,典型如具备一定活跃或等级中等的用户等; 3:较高级用户,典型如高活跃或高等级用户等; 4:最高级用户,典型如付费用户、VIP用户等 |
liveCover | string | 否 | - | 直播封面 直播封面,一般用于人审需要字段 |
liveTitle | string | 否 | - | 直播标题 直播标题,一般用于人审需要字段 |
receiveTokenId | string | 否 | 64 | 消息接收者的tokenId由数字、字母、下划线、短杠组成的长度小于等于64位的字符串 |
returnAllImg | int32 | 否 | - | 返回截帧识别结果的风险等级。可选值如下:(默认值为0) 0:返回风险等级为非pass的图片审核信息。 1:返回所有风险等级的图片审核信息。 |
returnAllText | int32 | 否 | - | 返回音频识别结果的风险等级。可选值如下(默认为0): 0:返回风险等级为非pass的音频片段与文本内容。 1:返回所有风险等级的音频片段与文本内容。 |
returnFinishInfo | int32 | 否 | - | 视频流结束回调通知。可选值如下:(默认值为0) 1:审核结束时发起结束通知,回调参数增加statCode状态码。 0:审核结束时不发送结束通知。 |
returnPreAudio | int32 | 否 | - | 是否返回前一片段信息。可选值如下: 1:返回的preAudioUrl字段包含前10秒和当前10秒共20秒的音频片段链接。 0:不返回前一片段信息。 |
returnPreText | int32 | 否 | - | 是否返回前一片段文本信息。可选值如下: 1:返回的content字段包含前10秒和当前10秒共20秒的音频片段文本内容 0:不返回前一片段文本信息。 |
room | string | 否 | 64 | 直播间/游戏房间编号,可针对单个房间制定不同的策略 |
streamName | string | 否 | 64 | 视频流名称 用于后台界面展示,建议传入 |
url | string | 否 | 600 | 要检测的视频流的普通流的url地址 |
agoraParam | object | 否 | - | 声网录制参数(当streamType为AGORA时必传) |
appId | string | 是 | 64 | 声网提供的应用标识 |
channel | string | 是 | 64 | 声网提供的频道名 |
channelProfile | int32 | 否 | 32 | 声网录制的频道模式,取值: 0: 通信(默认),即常见的 1 对 1 单聊或群聊,频道内任何用户可以自由说话; 1: 直播,有两种用户角色: 主播和观众。 |
enableH265Support | boolean | 否 | - | 是否支持录制H.265视频流。 false:(默认)不支持录制 H.265 视频流。频道内的远端用户无法发 H.265 视频流。 true:支持录制 H.265 视频流。 |
enableIntraRequest | boolean | 否 | - | 是否启用关键帧请求。该参数默认为true,可改善弱网下的音视频体验。如需使单流模式下录制的视频可指定播放位置,须将enableIntraRequest设为 false。 false:禁用关键帧请求,频道内的所有发流端均每2秒发送一次关键帧。禁用后,单流模式下录制的视频可指定播放位置。 true:由发流端控制是否启用关键帧请求。启用后,单流模式下录制的视频文件播放时无法指定播放位置。 |
subscribeMode | string | 否 | - | 订阅模式。 AUTO: 自动订阅房间内的所有流,不设置subscribeMode时候的默认行为 UNTRUSTED: 配合untrustedUserIdList只订阅该列表指定的用户流,此种模式下如果untrustedUserIdList列表为空,参数错误,因为无法订阅任何流 TRUSTED: 配合trustedUserIdList只订阅该列表以外的用户流,此种模式下如果一定时间下没有trustedUserIdList名单外的用户进入房间,即untrustedUserIdList列表为空,数美将主动结束审核。 |
token | string | 否 | 64 | 安全要求较高的用户可以使用 token进行认证,生成方式详见声网文档:(https://docs.agora.io/cn/Recording/token_server?platform=CPP) >建议将token的有效期设置超过频道的持续时间,防止token失效导致无法拉流。当前声网支持的最大token有效期为24小时,因此当频道持续时间超过24小时的时候,需要处理token失效的问题。处理方法:在请求参数中设置开启音频流结束回调通知(设置returnFinishInfo为1)。当回调接收到审核结束通知(statCode为1),并且原因是由于拉流的token无效或过期,如果频道仍然存在并且需要继续审核,则生成新的token,将频道重新送审。 |
uid | int32 | 否 | 64 | 32位无符号整数。当token存在时,必须提供生成token时所使用的用户ID。 注意,此处需要区别实际房间中的用户uid,提供给服务端录制所用的uid不允许在房间中存在 |
trustedUserIdList | array | 否 | - | 信任用户的列表,subscribeMode为TRUSTED时生效,不允许为空,数美不会订阅房间内该列表指定的用户流 逗号拼接的UID数组,如[1,2],用户上限17个 |
untrustedUserIdList | array | 否 | - | 非信任用户的列表,subscribeMode为UNTRUSTED时生效,不允许为空,数美只订阅房间内该列表指定的用户流 逗号拼接的UID数组,如[1,2],用户上限17个 |
aliParam | object | 否 | - | 阿里引擎录制参数(当streamType为ALI时必传) |
room | string | 是 | 64 | 房间ID,需要和生成token使用的的channelID完全一致。服务端以房间为单位拉流录制。room为唯一标志,相同的room不会重复拉流。 |
token | string | 是 | 64 | 用于拉流端加入频道,生成方式详见文档:https://help.aliyun.com/zh/live/user-guide/token-based-authentication,每次上传审核都需要重新生成新的token。 |
userId | int32 | 否 | 32 | 阿里用户账号标识。 |
extra | object | 否 | - | 辅助信息 |
passThrough | object | 否 | 1024 | 客户传入透传字段。数美内部不会对该字段进行识别处理,随结果返回给用户。 |
trtcParam | object | 否 | - | 腾讯录制参数(当streamType为TRTC时必传) |
appScene | int32 | 是 | 1 | 应用场景,可选值: 0:视频通话场景 1:视频直播场景,默认值:0。详见:https://cloud.tencent.com/document/product/647/79634#45c6782b29cadc377b5763a5d8490340 |
demoSences | int32 | 是 | - | 录制类型可选值: 分流录制:2 合流录制:4 |
sdkAppId | int32 | 是 | 64 | 腾讯提供的sdkAppId |
strRoomId | string | 是 | 128 | 房间号码。取值说明:只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符 若您选用strRoomId时,需注意strRoomId和roomId两者都有值优先选用roomId |
userId | string | 是 | 32 | 分配给录制端的userId,限制长度为32bit,只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符 |
userSig | string | 是 | 128 | 录制userId对应的验证签名,相当于登录密码 |
roomId | int32 | 否 | 10 | 房间号码。取值范围:【1-4294967294】roomId与strRoomId必传一个,若两者都有值优先选用roomId 注意:目前一个房间最多只能审核8个用户 |
volcParam | object | 否 | - | 火山引擎录制参数(当streamType为VOLC时必传) |
appId | string | 是 | 64 | 火山提供的应用标识 |
roomId | string | 是 | 128 | 房间号 |
token | string | 是 | 64 | 录制userId对应的验证签名,相当于登录密码 |
userId | string | 是 | 32 | 分配给录制段的userId,限制长度为32bit,只允许包含(a-zA-Z),数字(0-9)以及下划线和连词符 |
zegoParam | object | 否 | - | 即构录制参数(当streamType为ZEGO时必传) |
roomId | string | 是 | 64 | zego的房间号 |
tokenId | string | 是 | 64 | zego提供的身份验证信息,获取zego的identify_token用于登录,生成方式详见zego文档:https://doc-zh.zego.im/article/15258 注意tokenId是唯一标识上传鉴黄每一次请求都需要重新生成新的 |
acceptLang | string | 否 | - | 选择返回标签的语种类型 可选值: zh:中文 en:英文 不传入默认为返回中文标签 |
响应#
返回参数#
流片段回调参数#
以下参数,除code、message、requestId以外,其他必返参数均为在code返回1100时为必返。
流结束回调参数#
仅当returnFinishInfo为1时返回