有奖捉虫:云通信与企业服务文档专题,速来> HOT

简介

本文档提供关于视频审核的 API 概览和 SDK 示例代码。
注意
旧版本可能存在 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,
'scheme' => '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,
'scheme' => '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,
'scheme' => '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=AKIDJLGwMW6NTJ9mNj8DigYDiXOLtVpsbzGJ&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=65af69dedc0cea3702059c7b124914311d73b1e7
)

[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=AKIDJLGwMW6NTJ9mNj8DigYDiXOLtVpsbzGJ&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=ce3e8856e97b155a661108b0ae970f8fcfddf143
)

[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=AKIDJLGwMW6NTJ9mNj8DigYDiXOLtVpsbzGJ&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=019cf7a9250473e57e45e5d8eb3e569d4d2ecfe2
)

)

[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=AKIDziAUWHqzwb2DsGIJzOD1hHajzyhyglHW&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=d440335fccc8a6db8c278982b8b3fdda9719f970
)

[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=AKIDziAUWHqzwb2DsGIJzOD1hHajzyhyglHW&q-sign-time=1631194126%3B1631201326&q-key-time=1631194126%3B1631201326&q-header-list=host&q-url-param-list=&q-signature=f93ae84af5bf5f6730ffeae9edb3332285b8169d
)

)

[SnapshotCount] => 2
[State] => Success

)

[RequestId] => NjEzYTBjMGVfZmNjYTNiMGFfNGM2Ml8zMTdjYjM=
)

)