帮你快速理解、总结文档立即下载

视频审核

最近更新时间:2025-06-17 19:18:02
我的收藏

简介

本文档提供关于视频审核的 API 概览和 SDK 示例代码。
注意:
需要 COS PHP SDK v2.4.4 及以上版本。旧版本可能存在 bug,使用时建议升级到 最新版本。
API
操作描述
用于提交一个视频审核任务
用于查询指定的视频审核任务

提交视频审核任务

功能说明

用于提交一个视频审核任务。

方法原型

public Guzzle\\Service\\Resource\\Model detectVideo(array $args = array());

请求示例

示例一: 存储桶视频审核

<?php

require 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 审核

<?php

require 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
否

返回结果示例

响应参数具体含义参考 视频审核 API 文档。
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());

请求示例

<?php

require 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
是

返回结果示例

响应参数具体含义参考 视频审核 API 文档。
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=
)

)