媒体内容审核VCR

    视频审核接口

    提交视频审核

    用户提供视频路径,创建一次视频审核。

    • 视频路径支持BOS、VOD、URL路径;
    • 正在审核中的视频无法再次进行审核;
    • 已经审核过的视频(FINISHED/ERROR)可以重新进行审核;
    • 视频重新审核会覆盖上次审核结果。

    输入限制

    • 文件格式:3gpp,asf/wmv,avi,flv/f4v,mkv,mov/mp4/m4a,mp3,mp2,mpeg/mpg,ts/ogg,mts,wmv/wma,rm/rmvb,webm等
    • 视频编码标准:H.264,H.263/H.263+,MPEG-1/2/4,VP8/9,Quicktime,RealVideo,WMV,MJPEG等
    • 音频编码标准:MP1,MP2,MP3,AAC,AC-3,WMA,PCM,ADPCM,AMR,RealAudio,Vorbis,DSD等

    请求语法

    PUT /v<version>/media HTTP/1.1
    host: vcr.bj.baidubce.com
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    content-type: application/json

    请求参数

    请求体

    参数 类型 描述 是否必须
    source String 视频路径
    auth String 视频路径鉴权参数,仅URL视频使用
    description String 视频描述,默认空字符串,不超过256字符
    preset String 审核模板名称,不填写使用默认模版
    notification String 通知名称,可填写通知服务中配置的通知名称,配置后会把审核结果回调至该通知名称所对应的回调地址

    说明:

    1. 对于 BOS 视频,source="bos://<bos-bucket>/<bos-object>”, 例如"bos://testbucket/dir/video.mp4",由客户保证 BOS 路径可访问。
    2. 对于 VOD 媒资原视频,source="vod://<vod-media-id>”,例如"vod://mda-fhepatsnpn4rk9z",VCR 会内部请求VOD获取原视频地址,需要确保媒资在VOD状态为PUBLISHED。
    3. 对于 VOD 媒资转码后视频,source="vod://<vod-media-id>-<preset>", 例如"vod://mda-fhepatsnpn4rk9z-mp4",VCR 会内部请求VOD获取转码后视频地址,需要确保媒资在VOD状态为PUBLISHED,且模板存在。注意这里VOD媒资ID和模板名称的分隔符为"-"。VCR 会自动区分同一个媒资的原视频和转码后视频,几个视频可以同时发起审核,互不影响。
    4. 对于 URL 视频,source="<http(s)-url">,例如”http://video.domain.com/dir/video.mp4”;URL source中可以包含参数,例如”http://vod.domain.com/dir/video?id=0308”,VCR 会主动拉取source对应的原视频进行审核,由客户保证视频可访问。
    5. 对于包含鉴权参数的 URL 视频,可以将鉴权参数(大多是临时参数,且在指定时间内有效)设置到auth中,auth="<key1>=<value1>&<key2>=<value2>",注意这里(和HTTP协议一致)使用&分隔多个参数,例如"token=abcxyz×tamp=1514993900"。VCR 会使用?&将source和auth拼接,得到完整的原视频URL后拉取进行审核,由客户保证实际拉取的URL可访问。区分sourceauth的好处是,客户在查询视频审核结果或处理回调时,仅需传入或解析source而可忽略鉴权参数auth

    请求示例

    示例一:审核 BOS 视频

    PUT /v1/media HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    
    {
      "source": "bos://testbucket/dir/video.mp4",
      "preset": "ad_preset",
      "notification": "vcr_callback"
    }

    示例二:审核 VOD 媒资原视频

    PUT /v1/media HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    
    {
      "source": "vod://mda-fhepatsnpn4rk9z",
      "notification": "vcr_callback"
    }

    示例三:审核 VOD 转码后视频

    PUT /v1/media HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    
    {
      "source": "vod://mda-fhepatsnpn4rk9z-mp4"
    }

    示例四:审核 URL 视频

    PUT /v1/media HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    
    {
      "source": "http://test.domain.com/dir/video.mp4"
    }

    示例五:审核包含鉴权参数的 URL 视频

    PUT /v1/media HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    
    {
      "source": "http://test.domain.com/dir/video.mp4",
      "auth": "token=abcxyz&timestamp=1514993900"
    }    

    响应体

    响应示例

    HTTP/1.1 200 OK

    查询视频审核结果

    根据视频路径查询审核结果。

    请求语法

    查询视频审核结果:

    GET /v<version>/media HTTP/1.1
    host: vcr.bj.baidubce.com
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>
    content-type: application/json

    请求参数

    参数 类型 描述 是否必须
    source String 视频路径,需要对source进行urlEncode。

    请求体

    请求示例

    示例一:查询 BOS 视频审核结果

    GET /v1/media?source=bos%3a%2f%2ftestbucket%2fdir%2fvideo.mp4 HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>

    示例二:查询 VOD 媒资原视频审核结果

    GET /v1/media?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>

    示例三:查询 VOD 转码后视频审核结果

    GET /v1/media?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z-mp4 HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>

    示例四:查询 URL 视频审核结果

    GET /v1/media?source=http%3a%2f%2ftest.domain.com%2fdir%2fvideo.mp4 HTTP/1.1
    host: vcr.bj.baidubce.com
    content-type: application/json
    authorization: <bce-authorization-string>
    x-bce-date: <bce-authorization-utc-date>

    如前所述,对于 URL 视频,如果在提交审核时指定了auth参数,在查询审核结果时是不需要指定的。

    响应头域

    响应参数

    参数 类型 描述
    source String 视频路径
    mediaId String VOD媒资id,source为VOD路径时存在
    description String 视频描述
    preset String 审核模板名称
    status String 审核状态
    percent Number 审核进度,0 ~ 100整数;仅status=PROCESSING时存在
    notification String 通知名称
    createTime Date 审核创建时间
    finishTime Date 审核结束时间,仅当status=FINISHED/ERROR时存在
    label String 审核结果标记,仅当status=FINISHED时存在
    results Array 审核结果,仅当status=FINISHED且视频中有疑似涉黄/暴恐/涉政/广告/违禁成分时存在
    + type String 审核类型
    + items Array 审核结果项数组
    ++ subType String 审核项
    ++ target String 审核物料类型,可选值:thumbnail, audio, speech, character
    ++ timeInSeconds Number 物料在视频中的秒数
    ++ confidence Double 该审核结果项的置信度,0~100的浮点数
    ++ label String 审核结果项标记
    ++ extra String 额外信息,如有;例如政治敏感人物识别出来的人名
    ++ evidence Object 审核证据
    +++ thumbnail String 缩略图URL
    +++ location Object 证据位置信息
    ++++ leftOffsetInPixel Number 左偏移
    ++++ topOffsetInPixel Number 上偏移
    ++++ widthInPixel Number 宽度
    ++++ heightInPixel Number 高度
    +++ text String 文本证据
    error Object 审核失败信息,仅当status=ERROR时存在
    + code String 错误码
    + message String 错误信息

    响应示例

    HTTP/1.1 200 OK
    {
        "source": "vod://mda-fhepatsnpn4rk9z",
        "status": "FINISHED",
        "createTime": "2017-03-22T12:00:00Z",
        "finishTime": "2017-03-22T12:06:48",
        "label": "REVIEW",
        "results": [{
            "type": "sexual_porn",
            "items": [{
                "subType": "behavior",
                "target": "audio",
                "startTimeInSeconds": 0,
                "confidence": 68,
                "label": "REVIEW"
            }]
        },
        {
            "type": "ad_brand",
            "items": [
                {
                    "confidence": 99.66,
                    "evidence": {
                        "location": {
                            "heightInPixel": 15,
                            "leftOffsetInPixel": 386,
                            "topOffsetInPixel": 111,
                            "widthInPixel": 35
                        },
                        "thumbnail": "http://path.to.thumbnail.jpg"
                    },
                    "extra": "美孚",
                    "label": "REJECT",
                    "subType": "brand",
                    "target": "thumbnail",
                    "timeInSeconds": 845
                },
                {
                    "confidence": 90.06,
                    "evidence": {
                        "location": {
                            "heightInPixel": 24,
                            "leftOffsetInPixel": 451,
                            "topOffsetInPixel": 132,
                            "widthInPixel": 103
                        },
                        "thumbnail": "http://path.to.thumbnail.jpg"
                    },
                    "extra": "诺优能",
                    "label": "REVIEW",
                    "subType": "brand",
                    "target": "thumbnail",
                    "timeInSeconds": 219
                }]
        },
        {
            "type": "political_group",
            "items": [
                {
                    "confidence": 99.8,
                    "endTimeInSeconds": 4226,
                    "evidence": {
                        "text": "昆明市工商局的"
                    },
                    "extra": "工商局",
                    "label": "REJECT",
                    "startTimeInSeconds": 4225,
                    "subType": "political_group_positive",
                    "target": "speech"
                }]
        }]
    }

    审核结果说明

    视频审核状态和进度

    审核状态 状态名称 描述
    PROVISIONING 排队中 视频审核排队中
    PROCESSING 审核中 视频审核进行中
    FINISHED 审核完成 审核结束,可以查询审核结果
    ERROR 审核失败 审核失败,可以查询失败错误原因
    • 每一次提交审核后,VCR会根据其使用的审核模板在内部根据不同审核类型进行多项”子审核”。
    • 若任一子审核失败,本次审核就会失败。
    • 当每项子审核完成时,VCR 都会更新本次审核的审核进度。

    审核结果

    每个视频的审核结果格式为:

    参数 类型 描述
    label String 审核结果标记,可选值:NORMAL/REVIEW/REJECT
    results Array 审核结果
    + type String 审核类型
    + items Array 审核结果项数组

    审核标记

    审核结果标记label,简称审核标记,其可选值包括NORMAL/REVIEW/REJECT,分别表示正常/疑似违规/确认违规。

    审核标记是根据 VCR 审核结果的置信度和用户审核视频时指定的审核模板中疑似置信度阈值和确认置信度阈值生成的。

    举个例子,VCR在对视频进行图像审核时,判断某一帧为涉黄场景下的色情类图片的置信度为C,用户使用的审核模板中配置的疑似置信度阈值和确认置信度阈值分别为T_ReviewT_Reject

    • C < T_Review,VCR忽视该帧图片的涉黄-色情审核结果;
    • T_Review <= C < T_Reject,VCR输出一个label=REVIEW的审核结果项;
    • T_Reject <= C,VCR会输出一个label=REJECT的审核结果项。

    视频的审核结果标记由各审核结果项(见下)汇总得到,汇总规则:

    • 审核结果数组为空,即没有审核结果项时视频label = NORMAL
    • 任一审核结果项label = REJECT时,视频label = REJECT
    • 其余情况下(所有审核结果项label = REVIEW)视频label = REVIEW

    审核物料

    VCR 会对视频中提取的不同审核物料进行审核。VCR 审核物料分为以下四种:

    • thumbnail,图像物料,即以一定策略从视频截取的缩略图;
    • audio,声音物料,即视频音频;
    • speech,语音物料,即视频音频通过ASR技术获取的语音识别结果;
    • character,文字物料,即视频缩略图通过OCR技术获取的文字识别结果。

    审核类型

    审核结果中的type表示”审核类型”。每类审核场景下包含着多种审核类型,不同审核类型支持的审核物料也不一样。随着智能内容审核服务的迭代升级,会不断扩展审核场景和审核类型。

    审核类型列表

    审核场景 审核类型 描述 支持的审核物料类型
    涉黄审核 sexual_porn 色情审核 thumbnail,audio,character,speech
    涉黄审核 sexual_sexy 性感审核 thumbnail
    涉黄审核 sexual_intimacy 亲密行为审核 thumbnail
    涉黄审核 sexual_vulgar 低俗行为 thumbnail
    暴恐审核 terrorist_group 暴恐组织审核 thumbnail,speech,character
    暴恐审核 terrorist 暴恐人物审核 thumbnail,speech,character
    暴恐审核 terror_event 暴力事件审核 thumbnail,speech,character
    涉政审核 politician 涉政人物审核 thumbnail,character,speech
    涉政审核 political_event 涉政事件审核 character,speech
    涉政审核 political_group 涉政组织审核 thumbnail,character,speech
    广告审核 ad_brand 品牌广告审核 thumbnail,character,speech
    广告审核 ad_marketing 欺诈及营销广告审核 thumbnail,character,speech
    违禁审核 illegal_gamble 赌博审核 character,speech
    违禁审核 illegal_forgery 假冒伪劣及造假盗窃审核 character,speech
    违禁审核 illegal_trade 非法交易审核 character,speech
    违禁审核 illegal_privacy 非法获取私人信息审核 character,speech

    审核结果项

    在审核结果中,每个审核类型都对应一个items,表示该子审核的结果。数组中的元素称为审核结果项,其具体格式为:

    参数 类型 描述
    subType String 审核项
    target String 审核物料类型,可选值:thumbnail, audio, speech, character
    timeInSeconds Number 物料在视频中的秒数,thumbnail/character审核物料有该属性
    startTimeInSeconds Number 物料在视频中的起始秒数,和endTimeInSeconds同时存在,audio/speech审核物料有该属性
    endTimeInSeconds Number 物料在视频中的结束秒数,和startTimeInSeconds同时存在
    confidence Double 审核结果项的置信度,0~100的浮点数
    label String 审核结果项标记
    extra String 额外信息,如有;例如涉政人物审核出来的人名
    evidence Object 审核证据

    审核项

    审核结果中的subType表示”审核项”。每种审核类型下细分了不同审核项。

    审核项列表

    审核场景 审核类型 审核项 审核项描述
    涉黄审核 sexual_porn behavior,sm,products,children,art 性行为、露点及嫖娼,SM,性用品及性玩具,儿童色情,艺术品色情
    涉黄审核 sexual_sexy male,female 男性衣着暴露,女性衣着暴露
    涉黄审核 sexual_intimacy intimacy 亲密行为
    涉黄审核 sexual_vulgar vulgar 低俗行为
    暴恐审核 terrorist_group terrorist_group 恐怖组织
    暴恐审核 terrorist terrorist 暴恐人物
    暴恐审核 terror_event blood,corpse,murder,explosion,riot,weapon,police,traffic 血腥,尸体,绑架及杀人,爆炸火灾,暴乱场面,军事武器,警察部队,车祸
    涉政审核 politician politician_positive, politician_negative 涉政正面人物,涉政负面人物
    涉政审核 political_event political_event_positive,political_event_negative 涉政正面事件,涉政负面事件
    涉政审核 political_group political_group_positive,political_group_negative 涉政正面组织,涉政负面组织
    广告审核 ad_brand brand 品牌标识
    广告审核 ad_marketing qrcode,contact,website,commercial,watermark 二维码,联系方式,网站,软文推广,水印
    违禁审核 illegal_gamble gamble 赌博
    违禁审核 illegal_forgery forgery 假冒伪劣及造假盗窃
    违禁审核 illegal_trade trade 非法交易
    违禁审核 illegal_privacy privacy 非法获取私人信息

    审核证据

    根据不同的审核物料类型,审核证据也不相同。审核证据的格式为:

    参数 类型 描述
    thumbnail String 缩略图URL
    location Object 证据位置信息
    + leftOffsetInPixel Number 左偏移
    + topOffsetInPixel Number 上偏移
    + widthInPixel Number 宽度
    + heightInPixel Number 高度
    text String 文本证据

    具体地说:

    • target=thumbnail,审核证据=thumbnail +(可选)location
    • target=audio,暂无审核证据
    • target=speech,审核证据=text
    • target=character,审核证据=thumbnail + location + text

    审核错误码列表

    视频审核失败时,查询视频审核结果会返回审核失败错误信息。目前VCR支持如下错误码:

    错误码 错误信息 备注
    InvalidMedia fetch media failure URL视频拉取失败,请检查原视频
    InvalidMedia media duration/resolution exceeds limit 视频时长/分辨率/元信息不满足VCR系统限制,详细可查看视频审核要求
    InvalidMedia invalid media: invalid audio or video 视频元信息中音频或视频信息不合预期,请检查原视频
    InvalidMedia invalid media: media duration/resolution exceeds limit 视频时长或分辨率不满足系统限制,请检查原视频
    InvalidMedia convert to mp4 error 原视频转码为mp4失败,请检查原视频
    InvalidMedia extract thumbnails error 抽取视频缩略图失败,请检查原视频
    InvalidMedia extract pcm error 抽取视频音频失败,请检查原视频
    InternalError get media info failure 获取视频元信息异常,建议重试
    InternalError create extract jobs error, please retry 系统内部错误,建议重试
    InternalError convert to mp4 error 原视频转码为mp4内部错误,请先检查原视频,如视频正常则可以重试
    InternalError extract thumbnails error 抽取视频缩略图内部错误,请先检查原视频,如视频正常则可以重试
    InternalError extract pcm error 抽取视频音频内部错误,请先检查原视频,如视频正常则可以重试
    InternalError extract speech(asr) error, please retry 视频语音识别失败
    InternalError extract characters(ocr) error, please retry 视频文字识别失败
    InternalError create check jobs error, please retry 系统内部错误,建议重试
    InternalError porn check error, please retry 视频涉黄审核失败
    InternalError politics check error, please retry 视频涉政审核失败
    InternalError ad check error, please retry 视频广告审核失败
    InternalError terrorism check error, please retry 视频暴恐审核失败
    InternalError speech text check error, please retry 对视频语音识别结果审核失败,建议重试
    InternalError character check error, please retry 对视频文字识别结果审核失败,建议重试
    InternalError service internal error, please retry 系统内部错误,建议重试
    TimeOut time out, please retry 视频审核超时,请先检查原视频,如视频正常则可以重试

    审核结果示例

    审核结果:

    {
        "label" : "REJECT",
        "results" : [{
            "type": "sexual_porn",
            "items": [{
                "subType": "products",
                "target": "thumbnail",
                "timeInSeconds": 103,
                "confidence": 98.76,
                "label": "REJECT",
                "evidence": {
                    "thumbnail": "http://xxx/xxx.jpg"
                }
            }, {
                "subType": "behavior",
                "target": "audio",
                "confidence": 70,
                "startTimeInSeconds": 0,
                "label": "REVIEW"
            }, {
                "subType": "behavior",
                "target": "character",
                "confidence": 69,
                "timeInSeconds": 2,
                "label": "REVIEW",
                "evidence": {
                    "thumbnail": "http://xxx/xxx.jpg",
                    "location": {
                        "leftOffsetInPixel": 10,
                        "topOffsetInPixel": 10,
                        "widthInPixel": 20,
                        "heightInPixel": 20
                    },
                    "text": "这是一段文字识别的涉黄文字"
                }
            }, {
                "subType": "behavior",
                "target": "speech",
                "confidence": 68,
                "startTimeInSeconds": 0,
                "endTimeInSeconds": 20,
                "label": "REVIEW",
                "evidence": {
                    "text": "这是一段语音识别的涉黄文字"
                }
            }],
        }, {
            "type": "sexual_sexy",
            "items": [{
                "subType": "female",
                "target": "thumbnail",
                "timeInSeconds": 35,
                "confidence", 68.4,
                "label": "REVIEW",
                "evidence": {
                    "thumbnail": "http://xxx/xxx.jpg"
                }
            }]
        }, {
            "type": "terror_event",
            "items": [{
                "subType": "explosion",
                "target": "character",
                "timeInSeconds": 12,
                "confidence": 50,
                "label": "REVIEW",
                "extra": "炸弹",
                "evidence": {
                    "thumbnail": "http://xxx/xxx.jpg",
                    "location": {
                        "leftOffsetInPixel": 10,
                        "topOffsetInPixel": 10,
                        "widthInPixel": 20,
                        "heightInPixel": 20
                    },
                    "text": "炸弹是文字识别的暴恐文字"
                }
            }]
        }, {
            "type": "politician",
            "items": [{
                "subType": "politician_positive",
                "target": "thumbnail",
                "timeInSeconds": 144,
                "confidence": 95,
                "label": "REJECT",
                "extra": "习大大",
                "evidence": {
                    "thumbnail": "http://xxx/xxx.jpg",
                    "location": {
                        "leftOffsetInPixel": 10,
                        "topOffsetInPixel": 10,
                        "widthInPixel": 20,
                        "heightInPixel": 20
                    }
                },
            }]
        }, {
            "type": "political_group",
            "items": [{
                "subType": "political_group_positive",
                "target": "speech",
                "startTimeInSeconds": 2
                "endTimeInSeconds": 10
                "confidence": 90,
                "label": "REJECT",
                "extra": "天安门",
                "evidence": {
                    "text": "天安门是语音识别的涉政文字"
                }
            }]
        }]
    }
    上一篇
    使用流程
    下一篇
    音频审核接口