简介
本文档提供关于视频审核的 API 概览和 SDK 示例代码。
注意
API | 操作描述 |
用于提交一个视频审核任务 | |
用于查询指定的视频审核任务 |
提交视频审核任务
功能说明
用于提交一个视频审核任务。
方法原型
public Guzzle\\Service\\Resource\\Model detectVideo(array $args = array());
请求示例
示例一: 存储桶视频审核
<?phprequire dirname(__FILE__, 2) . '/vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {//存储桶视频审核$result = $cosClient->detectVideo(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Input' => array('Object' => 'test.mp4', // 存储桶文件// 'DataId' => '', // 可选 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。// 'UserInfo' => array(// 'TokenId' => '',// 'Nickname' => '',// 'DeviceId' => '',// 'AppId' => '',// 'Room' => '',// 'IP' => '',// 'Type' => '',// 'ReceiveTokenId' => '',// 'Gender' => '',// 'Level' => '',// 'Role' => '',// ),// 'Encryption' => array(// 'Algorithm' => '',// 'Key' => '',// 'IV' => '',// 'KeyId' => '',// 'KeyType' => 0,// ),),'Conf' => array(// 'BizType' => '', // 可选 定制化策略// 'Callback' => '', // 可选 回调URL// 'DetectContent' => 1, // 可选 用于指定是否审核视频声音,当值为0时:表示只审核视频画面截图;值为1时:表示同时审核视频画面截图和视频声音。默认值为0。// 'CallbackVersion' => 'Detail', // 可选 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。'Snapshot' => array(// 'Mode' => 'Average', // 可选 截帧模式,默认值为 Interval。Interval 表示间隔模式;Average 表示平均模式;Fps 表示固定帧率模式。// 'TimeInterval' => 50, // 可选 视频截帧频率'Count' => '3', // 视频截帧数量),// 'Freeze' => array(// 'PornScore' => 90,// 'AdsScore' => 90,// 'PoliticsScore' => 90,// 'TerrorismScore' => 90,// ), // 可选 自动冻结配置项,可配置指定审核分数的结果进行自动冻结),));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
示例二: 视频URL审核
<?phprequire dirname(__FILE__, 2) . '/vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {//视频url审核$videoUrl = 'http://example.com/test.mp4';$result = $cosClient->detectVideo(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Input' => array('Url' => $videoUrl, // 视频url// 'DataId' => '', // 可选 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。),'Conf' => array(// 'BizType' => '', // 可选 定制化策略// 'Callback' => '', // 可选 回调URL// 'DetectContent' => 1, // 可选 用于指定是否审核视频声音,当值为0时:表示只审核视频画面截图;值为1时:表示同时审核视频画面截图和视频声音。默认值为0。// 'CallbackVersion' => 'Detail', // 可选 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。'Snapshot' => array(// 'Mode' => 'Average', // 可选 截帧模式,默认值为 Interval。Interval 表示间隔模式;Average 表示平均模式;Fps 表示固定帧率模式。// 'TimeInterval' => 50, // 可选 视频截帧频率'Count' => '3', // 视频截帧数量),),));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
Request 中的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Input | Request | 需要审核的视频。 | Container | 是 |
Conf | Request | 审核规则配置。 | Container | 是 |
Container 类型 Input 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Object | Request.Input | 当前 COS 存储桶中的视频文件名称,例如在目录 test 中的文件 video.mp4,则文件名称为 test/video.mp4。 | String | 否 |
Url | Request.Input | 视频文件的链接地址,例如 http://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/test.mp4。Object 和 Url 只能选择其中一种。 | String | 否 |
DataId | Request.Input | 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。 | String | 否 |
UserInfo | Request.Input | 用户业务字段。 | Container | 否 |
Container 节点 UserInfo 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
TokenId | Request.Input.UserInfo | 用户业务 TokenId,长度不超过128字节。 | String | 否 |
Nickname | Request.Input.UserInfo | 用户业务 Nickname,长度不超过128字节。 | String | 否 |
DeviceId | Request.Input.UserInfo | 用户业务 DeviceId,长度不超过128字节。 | String | 否 |
AppId | Request.Input.UserInfo | 用户业务 AppId,长度不超过128字节。 | String | 否 |
Room | Request.Input.UserInfo | 用户业务 Room,长度不超过128字节。 | String | 否 |
IP | Request.Input.UserInfo | 用户业务 IP,长度不超过128字节。 | String | 否 |
Type | Request.Input.UserInfo | 用户业务 Type,长度不超过128字节。 | String | 否 |
ReceiveTokenId | Request.Input.UserInfo | 用户业务 ReceiveTokenId,长度不超过128字节。 | String | 否 |
Gender | Request.Input.UserInfo | 用户业务 Gender,长度不超过128字节。 | String | 否 |
Level | Request.Input.UserInfo | 用户业务 Level,长度不超过128字节。 | String | 否 |
Role | Request.Input.UserInfo | 用户业务 Role,长度不超过128字节。 | String | 否 |
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
BizType | Request.Conf | 表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如色情、广告、违法违规等,配置指引: 设置公共审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。 | String | 否 |
Snapshot | Request.Conf | 视频画面的审核通过视频截帧能力截取出一定量的截图,通过对截图逐一审核而实现的,该参数用于指定视频截帧的配置。 | Container | 是 |
Callback | Request.Conf | 回调地址,以 http:// 或者 https:// 开头的地址。 | String | 否 |
CallbackVersion | Request.Conf | 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。 | String | 否 |
DetectContent | Request.Conf | 用于指定是否审核视频声音,当值为0时:表示只审核视频画面截图;值为1时:表示同时审核视频画面截图和视频声音。默认值为0。 | Integer | 否 |
CallbackType | Request.Conf | 回调片段类型,有效值:1(回调全部截帧和音频片段)、2(回调违规截帧和音频片段)。默认为 1。 | Integer | 否 |
Freeze | Request.Conf | 自动冻结配置项,可配置指定审核分数的结果进行自动冻结。 | Container | 否 |
Container 类型 Snapshot 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Mode | Request.Conf.Snapshot | 表示视频的截帧模式,有效值:Interval、Average、Fps。Interval 表示间隔模式:每间隔 TimeInterval 秒截取一帧;当设置 Count,未设置 TimeInterval 时,表示截取所有帧,共 Count 帧。Average 表示平均模式:选择该模式时 TimeInterval 参数不生效,需要结合 Count 参数使用,表示整个视频,按平均间隔截取共 Count 张图片。Fps 表示固定帧率模式:选择该模式时, TimeInterval 参数表示每秒截取多少帧,未设置 TimeInterval 时,表示截取所有帧,Count 表示共截取多少帧。 | String | 否 |
Count | Request.Conf.Snapshot | 视频截帧数量,范围为(0, 10000]。 | Integer | 是 |
TimeInterval | Request.Conf.Snapshot | 视频截帧频率,范围为(0, 60],单位为秒,支持 float 格式,执行精度精确到毫秒。 | Float | 否 |
Container 类型 Freeze 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
PornScore | Request.Conf.Freeze | 取值为[0,100],表示当色情审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
AdsScore | Request.Conf.Freeze | 取值为[0,100],表示当广告审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
返回结果示例
GuzzleHttp\\Command\\Result Object([RequestId] => NjEzYTA4YTlfZmNjYTNiMGFfNGM2MV8zMTM1ODQ=[ContentType] => application/xml[ContentLength] => 322[JobsDetail] => Array([Object] => movie.mp4[JobId] => avd61e00d8116f11ec953452540024deb5[State] => Submitted[CreationTime] => 2021-09-09T21:14:17+08:00)[Bucket] => examplebucket-1250000000[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/video/auditing)
查询视频审核任务
功能说明
用于查询视频审核任务执行情况和结果。
方法原型
public Guzzle\\Service\\Resource\\Model getDetectVideoResult(array $args = array());
请求示例
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {$result = $cosClient->getDetectVideoResult(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => 'examplejobid', // JobId));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
参数名称 | 类型 | 描述 | 是否必填 |
Bucket | String | 存储桶名称,格式:BucketName-APPID | 是 |
Key | String | 需要查询的任务 ID | 是 |
返回结果示例
GuzzleHttp\\Command\\Result Object([RequestId] => NjEzYTBjMGVfZmNjYTNiMGFfNGM2Ml8zMTdjYjM=[ContentType] => application/xml[ContentLength] => 4941[Key] => avd61e00d8116f11ec953452540024deb5[Bucket] => examplebucket-1250000000[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/video/auditing/avd61e00d8116f11ec953452540024deb5[Response] => Array([JobsDetail] => Array([AdsInfo] => Array([Count] => 0[HitFlag] => 0)[AudioSection] => Array([0] => Array([AdsInfo] => Array([HitFlag] => 0[Score] => 0)[Duration] => 30000[OffsetTime] => 0[PornInfo] => Array([HitFlag] => 0[Score] => 0)[Text] => Array()[Url] => https://audio-auditing-appid.cos.ap-guangzhou.myqcloud.com/_cms_segments%2Fcms%2Faudio%2Fw-audio-YToIq75SmCBmUefo%2F0.mp3?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=*************************************************)[1] => Array([AdsInfo] => Array([HitFlag] => 0[Score] => 0)[Duration] => 30000[OffsetTime] => 30000[PornInfo] => Array([HitFlag] => 0[Score] => 0)[Text] => Array()[Url] => https://audio-auditing-appid.cos.ap-guangzhou.myqcloud.com/_cms_segments%2Fcms%2Faudio%2Fw-audio-YToIq75SmCBmUefo%2F30.mp3?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=*************************************************)[2] => Array([AdsInfo] => Array([HitFlag] => 0[Score] => 0)[Duration] => 2000[OffsetTime] => 60000[PornInfo] => Array([HitFlag] => 0[Score] => 0)[Text] => Array()[Url] => https://audio-auditing-appid.cos.ap-guangzhou.myqcloud.com/_cms_segments%2Fcms%2Faudio%2Fw-audio-YToIq75SmCBmUefo%2F60.mp3?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=*************************************************))[CreationTime] => 2021-09-09T21:14:17+08:00[JobId] => avd61e00d8116f11ec953452540024deb5[Object] => movie.mp4[PornInfo] => Array([Count] => 0[HitFlag] => 0)[Result] => 0[Snapshot] => Array([0] => Array([AdsInfo] => Array([HitFlag] => 0[Label] => Array()[Score] => 0[SubLabel] => Array())[PornInfo] => Array([HitFlag] => 0[Label] => Array()[Score] => 0[SubLabel] => Array())[SnapshotTime] => 0[Text] => Array()[Url] => https://auditing-appid.cos.ap-chongqing.myqcloud.com/%2F872400-1251668577%2Fmovie.mp4%2Fjd634e582116f11eca3594388b5008703%2F0%2F0.jpg?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=*************************************************)[1] => Array([AdsInfo] => Array([HitFlag] => 0[Label] => Array()[Score] => 0[SubLabel] => Array())[PornInfo] => Array([HitFlag] => 0[Label] => Array()[Score] => 0[SubLabel] => Array())[SnapshotTime] => 50000[Text] => Array()[Url] => https://auditing-appid.cos.ap-chongqing.myqcloud.com/%2F872400-1251668577%2Fmovie.mp4%2Fjd634e582116f11eca3594388b5008703%2F50000%2F1.jpg?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=*************************************************))[SnapshotCount] => 2[State] => Success)[RequestId] => NjEzYTBjMGVfZmNjYTNiMGFfNGM2Ml8zMTdjYjM=))
SKID