在对接腾讯的trtc中,使用官方的直播自动截图功能出现了以下问题
因为自动截图和鉴黄是针对 直播 模块进行的
- ``
腾讯的trtc实时音视频模块不能直接进行使用
提交腾讯云工单想咨询一下这个功能,被工作人员拽过来一个链接
`
TRTC 旁路流实现截图鉴黄
https://www.rtcgeek.com/?/article/69
安装腾讯的扩展 composer.json
"tencentcloud/tencentcloud-sdk-php": "v3.0.595",
重写两个类
在项目app下创建 /Plugins/Live/Models/
创建文件: CreateSnapshotTemplateRequest.php
php
- ``
namespace TencentCloud\Live\V20180801\Models;
use TencentCloud\Common\AbstractModel;
/**
* CreateLiveSnapshotTemplate请求参数结构体
*
* @method string getTemplateName() 获取模板名称。
长度上限:255字节。
仅支持中文、英文、数字、_、-。
* @method void setTemplateName(string $TemplateName) 设置模板名称。
长度上限:255字节。
仅支持中文、英文、数字、_、-。
* @method integer getCosAppId() 获取Cos 应用 ID。
* @method void setCosAppId(integer $CosAppId) 设置Cos 应用 ID。
* @method string getCosBucket() 获取Cos Bucket名称。
注:CosBucket参数值不能包含-[appid] 部分。
* @method void setCosBucket(string $CosBucket) 设置Cos Bucket名称。
注:CosBucket参数值不能包含-[appid] 部分。
* @method string getCosRegion() 获取Cos地区。
* @method void setCosRegion(string $CosRegion) 设置Cos地区。
* @method string getDescription() 获取描述信息。
长度上限:1024字节。
仅支持中文、英文、数字、_、-。
* @method void setDescription(string $Description) 设置描述信息。
长度上限:1024字节。
仅支持中文、英文、数字、_、-。
* @method integer getSnapshotInterval() 获取截图间隔,单位s,默认10s。
范围: 2s ~ 300s。
* @method void setSnapshotInterval(integer $SnapshotInterval) 设置截图间隔,单位s,默认10s。
范围: 2s ~ 300s。
* @method integer getWidth() 获取截图宽度。默认:0(原始宽)。
范围:0-3000 。
* @method void setWidth(integer $Width) 设置截图宽度。默认:0(原始宽)。
范围:0-3000 。
* @method integer getHeight() 获取截图高度。默认:0(原始高)。
范围:0-2000 。
* @method void setHeight(integer $Height) 设置截图高度。默认:0(原始高)。
范围:0-2000 。
* @method integer getPornFlag() 获取是否开启鉴黄,0:不开启,1:开启。默认:0。
* @method void setPornFlag(integer $PornFlag) 设置是否开启鉴黄,0:不开启,1:开启。默认:0。
* @method string getCosPrefix() 获取Cos Bucket文件夹前缀。
如不传,实际按默认值
/{Year}-{Month}-{Day}
生效
* @method void setCosPrefix(string $CosPrefix) 设置Cos Bucket文件夹前缀。
如不传,实际按默认值
/{Year}-{Month}-{Day}
生效
* @method string getCosFileName() 获取Cos 文件名称。
如不传,实际按默认值
{StreamID}-screenshot-{Hour}-{Minute}-{Second}-{Width}x{Height}{Ext}
生效
* @method void setCosFileName(string $CosFileName) 设置Cos 文件名称。
如不传,实际按默认值
{StreamID}-screenshot-{Hour}-{Minute}-{Second}-{Width}x{Height}{Ext}
生效
*/
class CreateSnapshotTemplateRequest extends AbstractModel
{
/**
* @var string 模板名称。
长度上限:255字节。
仅支持中文、英文、数字、_、-。
*/
public $TemplateName;
/**
* @var integer Cos 应用 ID。
*/
public $CosAppId;
/**
* @var string Cos Bucket名称。
注:CosBucket参数值不能包含-[appid] 部分。
*/
public $CosBucket;
/**
* @var string Cos地区。
*/
public $CosRegion;
/**
* @var string 描述信息。
长度上限:1024字节。
仅支持中文、英文、数字、_、-。
*/
public $Description;
/**
* @var string 创建TRTC截图模版专用参数。
*/
public $ProductName;
/**
* @var integer 截图间隔,单位s,默认10s。
范围: 2s ~ 300s。
*/
public $SnapshotInterval;
/**
* @var integer 截图宽度。默认:0(原始宽)。
范围:0-3000 。
*/
public $Width;
/**
* @var integer 截图高度。默认:0(原始高)。
范围:0-2000 。
*/
public $Height;
/**
* @var integer 是否开启鉴黄,0:不开启,1:开启。默认:0。
*/
public $PornFlag;
/**
* @var string Cos Bucket文件夹前缀。
如不传,实际按默认值
/{Year}-{Month}-{Day}
生效
*/
public $CosPrefix;
/**
* @var string Cos 文件名称。
如不传,实际按默认值
{StreamID}-screenshot-{Hour}-{Minute}-{Second}-{Width}x{Height}{Ext}
生效
*/
public $CosFileName;
/**
* @param string $TemplateName 模板名称。
长度上限:255字节。
仅支持中文、英文、数字、_、-。
* @param integer $CosAppId Cos 应用 ID。
* @param string $CosBucket Cos Bucket名称。
注:CosBucket参数值不能包含-[appid] 部分。
* @param string $CosRegion Cos地区。
* @param string $Description 描述信息。
* @param string $ProductName 创建TRTC截图模版专用参数。
长度上限:1024字节。
仅支持中文、英文、数字、_、-。
* @param integer $SnapshotInterval 截图间隔,单位s,默认10s。
范围: 2s ~ 300s。
* @param integer $Width 截图宽度。默认:0(原始宽)。
范围:0-3000 。
* @param integer $Height 截图高度。默认:0(原始高)。
范围:0-2000 。
* @param integer $PornFlag 是否开启鉴黄,0:不开启,1:开启。默认:0。
* @param string $CosPrefix Cos Bucket文件夹前缀。
如不传,实际按默认值
/{Year}-{Month}-{Day}
生效
* @param string $CosFileName Cos 文件名称。
如不传,实际按默认值
{StreamID}-screenshot-{Hour}-{Minute}-{Second}-{Width}x{Height}{Ext}
生效
*/
function __construct()
{
}
/**
* For internal only. DO NOT USE IT.
*/
public function deserialize($param)
{
if ($param === null) {
return;
}
if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) {
$this->TemplateName = $param["TemplateName"];
}
if (array_key_exists("CosAppId",$param) and $param["CosAppId"] !== null) {
$this->CosAppId = $param["CosAppId"];
}
if (array_key_exists("CosBucket",$param) and $param["CosBucket"] !== null) {
$this->CosBucket = $param["CosBucket"];
}
if (array_key_exists("CosRegion",$param) and $param["CosRegion"] !== null) {
$this->CosRegion = $param["CosRegion"];
}
if (array_key_exists("Description",$param) and $param["Description"] !== null) {
$this->Description = $param["Description"];
}
if (array_key_exists("ProductName",$param) and $param["ProductName"] !== null) {
$this->ProductName = $param["ProductName"];
}
if (array_key_exists("SnapshotInterval",$param) and $param["SnapshotInterval"] !== null) {
$this->SnapshotInterval = $param["SnapshotInterval"];
}
if (array_key_exists("Width",$param) and $param["Width"] !== null) {
$this->Width = $param["Width"];
}
if (array_key_exists("Height",$param) and $param["Height"] !== null) {
$this->Height = $param["Height"];
}
if (array_key_exists("PornFlag",$param) and $param["PornFlag"] !== null) {
$this->PornFlag = $param["PornFlag"];
}
if (array_key_exists("CosPrefix",$param) and $param["CosPrefix"] !== null) {
$this->CosPrefix = $param["CosPrefix"];
}
if (array_key_exists("CosFileName",$param) and $param["CosFileName"] !== null) {
$this->CosFileName = $param["CosFileName"];
}
}
}
创建文件: CreateSnapshotTemplateResponse.php
``
php
/*
* Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace TencentCloud\Live\V20180801\Models;
use TencentCloud\Common\AbstractModel;
- ``
/**
* CreateLiveSnapshotTemplate返回参数结构体
*
* @method integer getTemplateId() 获取模板Id。
* @method void setTemplateId(integer $TemplateId) 设置模板Id。
* @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
* @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
*/
class CreateSnapshotTemplateResponse extends AbstractModel
{
/**
* @var integer 模板Id。
*/
public $TemplateId;
/**
* @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
*/
public $RequestId;
/**
* @param integer $TemplateId 模板Id。
* @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
*/
function __construct()
{
}
/**
* For internal only. DO NOT USE IT.
*/
public function deserialize($param)
{
if ($param === null) {
return;
}
if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) {
$this->TemplateId = $param["TemplateId"];
}
if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
$this->RequestId = $param["RequestId"];
}
}
}
``
项目composer.php加载该自定义autoload.php 加载器: ``
``
"autoload": {
"psr-4": {
"app\\": "application"
},
"files": [ //以下是自己添加的两个类
"app/Plugins/Live/Models/CreateSnapshotTemplateRequest.php",
"app/Plugins/Live/Models/CreateSnapshotTemplateResponse.php"
]
},
修改了composer.php的autoload的配置后,我们需要重新生成整个项目最终autoload.php,在项目路径执行命令:
composer dump-autoload