一、实现步骤概要
使用视频编辑模板导出视频,只需要按如下几步操作即可完成:
二、创建智能创作平台
请参见 管理端使用指南 – 创建标准型平台 创建平台。
注意:使用视频编辑模板功能,需要创建标准型平台。
三、获取 API 密钥
请求云 API 需要使用到开发者的 API 密钥(即 SecretId 和 SecretKey)。如果还未创建过密钥,请参见 创建密钥文档 生成新的 API 密钥;如果已创建过密钥,请参见 查看密钥文档 获取 API 密钥。
四、步骤2:制作视频编辑模板
参考 用户端使用指南-视频剪辑-模板制作 制件视频编辑模板。制作完成后,可以拿到视频编辑模板 ID,将在接口调用中使用。
注意:后续步骤以视频编辑模板 ID:5fc07c745d6cbe00018f1830@Public@CME为例,此模板为智能创作提供的公共模板,可直接使用。
五、步骤3:导入素材
使用视频编辑模板导出视频,需要替换模板中的部分媒体,这里需要先将媒体导入到智能创作媒资库。导入媒体的接口为 导入媒体 。为了简化操作,建议你使用 API Export 导入媒体。这里通过一个接口调用示例说明关键参数设置:
https://cme.tencentcloudapi.com/?Action=ImportMaterial&Platform=test&VodFileId=5285890796182734267&Owner.Id=user_100920093&Owner.Type=PERSON&Name=测试媒体1&<公共请求参数>
下面基于智能创作的 Java SDK 提供一个简单的示例:
import com.tencentcloudapi.common.Credential;import com.tencentcloudapi.common.profile.ClientProfile;import com.tencentcloudapi.common.profile.HttpProfile;import com.tencentcloudapi.common.exception.TencentCloudSDKException;import com.tencentcloudapi.cme.v20191029.CmeClient;import com.tencentcloudapi.cme.v20191029.models.*;public class ImportMaterial{ public static void main(String [] args) { try{ // 需要传入准备工作中获取的 SecretId,SecretKey,此处还需注意密钥对的保密 Credential cred = new Credential("SecretId", "SecretKey"); HttpProfile httpProfile = new HttpProfile(); httpProfile.setEndpoint("cme.tencentcloudapi.com"); ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); CmeClient client = new CmeClient(cred, "", clientProfile); // 以下为关键参数部分 ImportMaterialRequest req = new ImportMaterialRequest(); // 平台,填准备工作中创建的平台 ID req.setPlatform("test"); // 视频来源,推荐使用 VOD,先将视频上传到腾讯云点播 req.setSourceType("VOD"); Entity entity1 = new Entity(); entity1.setType("PERSON"); entity1.setId("user_100920093"); req.setOwner(entity1); // 媒体名称 req.setName("测试媒体1"); // 腾讯云点播 FileId,使用上传到点播的视频 FileId req.setVodFileId("5285890796182734267"); // 媒体文件路径,使用已经存在的媒体文件路径 req.setClassPath("/媒体"); // 媒体预处理参数,如果不需要做编辑预览,截取封面和雪碧图,此参数可不填 req.setPreProcessDefinition(10L); // 返回的 resp 是一个 ImportMaterialResponse 的实例,与请求对象对应 ImportMaterialResponse resp = client.ImportMaterial(req); // 输出 json 格式的字符串回包,任务 Id 可从此处得到 System.out.println(ImportMaterialResponse.toJsonString(resp)); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } }}
六、步骤4:导出视频
使用视频编辑模板导出视频接口为 使用视频编辑模板导出视频 。为了简化操作,建议你使用 API Export 发起导出视频。这里通过一个接口调用示例说明关键参数设置:
https://cme.tencentcloudapi.com/?Action=ExportVideoByTemplate&Platform=test&TemplateId=5fc07c745d6cbe00018f1830@Public@CME&SlotReplacements.0.Id=1&SlotReplacements.0.ReplacementType=VIDEO&SlotReplacements.0.MediaReplacementInfo.MaterialId=5fc4ad7f69ec74000179072345&SlotReplacements.0.MediaReplacementInfo.StartTimeOffset=0&Definition=10&ExportDestination=VOD&VODExportInfo.Name=测试视频&VODExportInfo.ClassId=10000&<公共请求参数>
下面基于智能创作的 Java SDK 提供一个简单的示例:
import com.tencentcloudapi.common.Credential;import com.tencentcloudapi.common.profile.ClientProfile;import com.tencentcloudapi.common.profile.HttpProfile;import com.tencentcloudapi.common.exception.TencentCloudSDKException;import com.tencentcloudapi.cme.v20191029.CmeClient;import com.tencentcloudapi.cme.v20191029.models.*;public class ExportVideoByTemplate{ public static void main(String [] args) { try{ // 需要传入准备工作中获取的 SecretId,SecretKey,此处还需注意密钥对的保密 Credential cred = new Credential("SecretId", "SecretKey"); HttpProfile httpProfile = new HttpProfile(); httpProfile.setEndpoint("cme.tencentcloudapi.com"); ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); CmeClient client = new CmeClient(cred, "", clientProfile); // 以下为关键参数部分 ExportVideoByTemplateRequest req = new ExportVideoByTemplateRequest(); // 平台,填准备工作中创建的平台 ID req.setPlatform("test"); // 视频编辑模板 ID,填第二步制作视频编辑模板获取到的视频编辑模板 ID req.setTemplateId("5fc07c745d6cbe00018f1830@Public@CME"); // 模板媒体替换信息 SlotReplacementInfo[] slotReplacementInfos1 = new SlotReplacementInfo[1]; SlotReplacementInfo slotReplacementInfo1 = new SlotReplacementInfo(); // 卡槽 Id,此处为制作视频编辑模板设置的替换卡槽 ID,唯一确认需要替换的媒体 slotReplacementInfo1.setId(0L); // 替换类型,此处必须与视频编辑模板中原有的媒体类型一致 slotReplacementInfo1.setReplacementType("VIDEO"); // 替换的媒体信息 MediaReplacementInfo mediaReplacementInfo1 = new MediaReplacementInfo(); // 媒体的媒体类型,目前支持云剪素材(CMEMaterialId),如果替换的媒体为图片,可填 'ImageUrl' mediaReplacementInfo1.setMediaType("CMEMaterialId"); mediaReplacementInfo1.setMaterialId("84a9b60cd409c2203c1be93"); // 替换的媒体开始时间,对于视频和音频有效,即替换的媒体以此开始时间使用,单位为秒 mediaReplacementInfo1.setStartTimeOffset(0F); slotReplacementInfo1.setMediaReplacementInfo(mediaReplacementInfo1); slotReplacementInfos1[0] = slotReplacementInfo1; req.setSlotReplacements(slotReplacementInfos1); // 导出模板 ID,用于指定导出的视频的参数,例如分辨率等。 req.setDefinition(10L); // 视频导出目标,可是直接导出到腾讯云点播,也可以导出到云剪媒资。 req.setExportDestination("VOD"); VODExportInfo vODExportInfo1 = new VODExportInfo(); vODExportInfo1.setName("模板导出视频1"); vODExportInfo1.setClassId(5L); req.setVODExportInfo(vODExportInfo1); // 操作者 UID,必须保证该 UID 对模板及替换的素材有使用权限。 req.setOperator("user_100920093"); // 返回的 resp 是一个 ExportVideoByTemplateResponse 的实例,与请求对象对应 ExportVideoByTemplateResponse resp = client.ExportVideoByTemplate(req); // 输出 json 格式的字符串回包 System.out.println(ExportVideoByTemplateResponse.toJsonString(resp)); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } }}
七、步骤5:查看导出结果
发起导出任务后,需要调用接口查看任务处理结果。查看任务结果的接口为 获取任务详情 。为了简化操作,建议你使用 API Export 查看处理结果。这里通过一个接口调用示例说明关键参数设置:
https://cme.tencentcloudapi.com/?Action=DescribeTaskDetail&Platform=test&TaskId=1250000000-CME-32f87637061242508eb10d6e4ecd0cd68&<公共请求参数>
下面基于智能创作的 Java SDK 提供一个简单的示例:
import com.tencentcloudapi.common.Credential;import com.tencentcloudapi.common.profile.ClientProfile;import com.tencentcloudapi.common.profile.HttpProfile;import com.tencentcloudapi.common.exception.TencentCloudSDKException;import com.tencentcloudapi.cme.v20191029.CmeClient;import com.tencentcloudapi.cme.v20191029.models.*;public class DescribeTaskDetail{ public static void main(String [] args) { try{ // 需要传入准备工作中获取的 SecretId,SecretKey,此处还需注意密钥对的保密 Credential cred = new Credential("SecretId", "SecretKey"); HttpProfile httpProfile = new HttpProfile(); httpProfile.setEndpoint("cme.tencentcloudapi.com"); ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); CmeClient client = new CmeClient(cred, "", clientProfile); // 以下为关键参数部分 DescribeTaskDetailRequest req = new DescribeTaskDetailRequest(); // 平台,填准备工作中创建的平台 ID req.setPlatform("test"); // 任务 ID,填第四步导出视频生成的任务 ID req.setTaskId("1250000000-CME-32f87637061242508eb10d6e4ecd0cd68"); // 返回的resp是一个DescribeTaskDetailResponse的实例,与请求对象对应 DescribeTaskDetailResponse resp = client.DescribeTaskDetail(req); // 输出json格式的字符串回包,可获取到任务结果 System.out.println(DescribeTaskDetailResponse.toJsonString(resp)); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } }}