在对接腾讯的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