A produção inteligente permite usar modelos avançados na edição de vídeo para obter efeitos sofisticados e estilos complexos de animação. Este tópico descreve como criar e utilizar esses modelos.
Criar um modelo avançado
Usar o console do IMS
Use o VE Exporter para exportar o projeto do AE como um arquivo de modelo no formato ZIP.
Carregue o arquivo de modelo na Template Factory.
Chamar uma operação de API
Chame a operação AddTemplate para criar um modelo e especifique a URL do OSS do modelo avançado.
AddTemplateRequest request = new AddTemplateRequest();
request.setType("VETemplate");
request.setName("Advanced template test");
request.setConfig("{\"oss_url\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.zip\"}");
AddTemplateResponse response = iceClient.addTemplate(request);
System.out.println("templateId : " + response.getBody().getTemplate().getTemplateId());
O valor de oss_url neste exemplo serve apenas como referência. Especifique a URL real do OSS.
Usar modelos avançados
Usar o console do IMS
Para obter mais detalhes sobre como editar vídeos com modelos avançados, consulte Usar modelos avançados para editar vídeos.
Chamar uma operação de API
-
Obtenha as informações do modelo.
Chame a operação GetTemplate para recuperar os dados do modelo. Especifique o ID do modelo no parâmetro
TemplateId.GetTemplateRequest request = new GetTemplateRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); GetTemplateResponse response = iceClient.getTemplate(request); GetTemplateResponseBody.GetTemplateResponseBodyTemplate template = response.getBody().getTemplate(); System.out.println("templateId : " + template.getTemplateId()); System.out.println("clipsParam : " + template.getClipsParam());A saída retornada é semelhante ao exemplo abaixo:
{ "RequestId":"******11-DB8D-4A9A-875B-275798******", "Template":{ "TemplateId":"****20b48fb04483915d4f2cd8ac****", "Name":"Advanced template test", "Type":"VETemplate", "Status":"Available", "ModifiedSource":"OpenAPI", "CreateSource":"OpenAPI", "Config":"{\"oss_url\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.zip\"}", "ClipsParam":"{\"Text7\":\"text\",\"Text6\":\"text\",\"Text5\":\"text\",\"Text4\":\"text\",\"Text3\":\"text\",\"Text2\":\"text\",\"Text1\":\"text\",\"Text0\":\"text\",\"Media3\":\"mediaId\",\"Media2\":\"mediaId\",\"Media1\":\"mediaId\",\"Media0\":\"mediaId\"}", "PreviewMedia":"", "CoverURL":"" } }NotaTambém é possível usar modelos integrados. O procedimento é semelhante ao descrito na seção anterior. Para mais informações sobre modelos integrados, consulte Modelos avançados.
-
Substitua
textemediaIdno parâmetroClipsParampelos valores reais.{ "Text0":"Subtitle 0", "Text1":"Subtitle 1", "Text2":"Subtitle 2", "Text3":"Subtitle 3", "Text4":"Subtitle 4", "Text5":"Subtitle 5", "Text6":"Subtitle 6", "Text7":"Subtitle 7", "Media0":"****20b48fb04483915d4f2cd8ac****", "Media1":"****20b48fb04483915d4f2cd8ac****", "Media2":"****20b48fb04483915d4f2cd8ac****", "Media3":"****20b48fb04483915d4f2cd8ac****" }NotaO parâmetro
ClipsParamdestina-se ao serviço de produção. Substitua o texto por legendas e o mediaId pelo ID ou URL do OSS de um ativo de mídia, como vídeo ou imagem. É possível combinar legendas e ativos de mídia.Se você definir apenas alguns campos no parâmetro
ClipsParam, as legendas não especificadas ficarão vazias por padrão e os ativos de mídia originais do modelo serão mantidos.É possível configurar fontes para legendas e modos de adaptação para vídeos e imagens. Consulte Recursos estendidos para mais detalhes.
-
Invoque o serviço de produção.
Chame a operação SubmitMediaProducingJob para enviar um job de edição e produção. Defina os parâmetros
TemplateIdeClipsParam.SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); request.setClipsParam("{\"Text7\":\" Subtitle 7\",\"Text6\":\" Subtitle 6\",\"Text5\":\" Subtitle 5\",\"Text4\":\" Subtitle 4\",\"Text3\":\" Subtitle 3\",\"Text2\":" Subtitle 2 "," Text1 ":" Subtitle 1 "," Text0 ":" Subtitle 0 "," Media3 ":"****20b48fb04483915d4f2cd8ac**** "," Media2 ":"****20b48fb04483915d4f2cd8ac**** "," Media1 ":"****20******** "," Media0 ":"****20b48fb04483915d4f2cd8ac**** "}"); request.setOutputMediaConfig("{\"MediaURL\":\"http://your-bucket.oss-cn-shanghai.aliyuncs.com/object.mp4\"}"); SubmitMediaProducingJobResponse response = iceClient.submitMediaProducingJob(request); System.out.println("jobid : " + response.getBody().getJobId());
Recursos estendidos
Definir o modo de adaptação de vídeos e imagens
Use o campo .adapt_type para configurar o modo de dimensionamento de vídeos e imagens. Valores válidos:
0: O material é redimensionado.
1: O material mantém a proporção original e preenche a dimensão especificada centralizado.
2: A proporção do material é preservada, mas ele é ajustado para caber dentro da dimensão definida, centralizado.
3: O conteúdo é dimensionado para ocupar toda a dimensão informada, ignorando a proporção original.
{
"Text7":"Subtitle 7",
"Text6":"Subtitle 6",
"Text5":"Subtitle 5",
"Text4":"Subtitle 4",
"Text3":"Subtitle 3",
"Text2":"Subtitle 2",
"Text1":"Subtitle 1",
"Text0":"Subtitle 0",
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg",
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg",
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg",
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg",
"Media3.adapt_type":0,
"Media2.adapt_type":1,
"Media1.adapt_type":2,
"Media0.adapt_type":3
}
Modificar a fonte das legendas
Use o campo .font_file para definir a tipografia das legendas. Também é possível informar uma URL do OSS para aplicar fontes personalizadas. Para saber mais sobre fontes .
{
"Text7.font_file":"SimSun",
"Text6.font_file":"Yuanti",
"Text5.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font1.ttf",
"Text4.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font2.ttf",
"Text7":"Subtitle 7",
"Text6":"Subtitle 6",
"Text5":"Subtitle 5",
"Text4":"Subtitle 4",
"Text3":"Subtitle 3",
"Text2":"Subtitle 2",
"Text1":"Subtitle 1",
"Text0":"Subtitle 0",
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg",
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg",
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg",
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg"
}
Outras configurações
O parâmetro ClipsParam aceita ainda as seguintes opções para editar materiais:
{
// Media asset
"Media1": "a8f5f167f44f4964e6c998dee827110c",
"Media1.loop": 1, // This setting applies to videos and GIFs. 0: uses the default loop logic of the engine. 1: loops the material. 2: does not loop the material.
"Media1.volume": 0.5, //This setting applies to videos. You must specify a value greater than or equal to 0. Valid values: 0 to 1. Default value: 0.
"Media1.adapt_type": 0, // The adaptation mode. 0: The material is not scaled. 1: The material keeps its aspect ratio and fills the given dimension in the center. 2: The material keeps its aspect ratio, but is scaled to fit within the given dimension in the center. 3: The material is scaled to fill the given dimension, regardless of the aspect ratio. 4: uses the matrix specified by the transform field. Default value: 1.
"Media1.transform": [a,c,e,b,d,f], //The row matrix in the [scale, skewX, transX, skewY, scaleY, transY] format. The matrix is the local coordinate system of the original image. A unit matrix is used by default.
"Media1.clip_start": 0.0, // Optional. The start time of video cropping. The value of clip_end must be greater than the value of clip_start.
"Media1.clip_end": 10.0, // The end time of video cropping. A value greater than 0 indicates that video cropping is required. A value less than or equal to 0 indicates that video cropping is not required at the end of the video.
// Subtitles
"Text1":"Test subtitles",
"Text1.adapt": true, // Specifies whether to enable text adaptation. This parameter is valid only for text of the text box type. By default, the adaptation method in the template is used.
"Text1.fill": "#FFFFFF", // The fill color of the text.
"Text1.stroke": "#FFFFFF", //The color of the text outline.
"Text1.stroke_width": 0.0, // The width of the text outline.
"Text1.stroke_over_fill": false, // Specifies whether the outline color is above the fill color.
"Text1.size": 10, // The text size in pixels.
"Text1.font_file": "SimSun" // The name of the font family.
}