La production intelligente vous permet d'utiliser des modèles avancés pour le montage vidéo afin d'obtenir des effets sophistiqués et des styles d'animation complexes. Cette rubrique décrit comment créer et utiliser des modèles avancés.
Créer un modèle avancé
Utiliser la console IMS
Utilisez VE Exporter pour exporter le projet AE en tant que fichier de modèle au format ZIP.
Importez le fichier de modèle dans la Template Factory.
Appeler une opération d'API
Appelez l'opération AddTemplate pour créer un modèle et spécifiez l'URL OSS du modèle avancé.
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());
La valeur de oss_url dans cet exemple est fournie à titre indicatif uniquement. Vous devez spécifier l'URL OSS réelle.
Utiliser des modèles avancés
Utiliser la console IMS
Pour plus d'informations sur l'utilisation des modèles avancés pour le montage vidéo, consultez Utiliser des modèles avancés pour monter des vidéos.
Appeler une opération d'API
-
Obtenez les informations relatives au modèle.
Appelez l'opération GetTemplate pour obtenir les informations relatives au modèle. Spécifiez l'ID du modèle dans le paramètre
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());Le résultat suivant est renvoyé :
{ "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":"" } }RemarqueVous pouvez également utiliser des modèles intégrés. La méthode d'utilisation des modèles intégrés est similaire à celle décrite dans la section précédente. Pour plus d'informations sur les modèles intégrés, consultez Modèles avancés.
-
Remplacez
textetmediaIddu paramètreClipsParampar les valeurs réelles.{ "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****" }RemarqueClipsParamest un paramètre destiné au service de production. Remplaceztextpar des sous-titres etmediaIdpar l'ID ou l'URL OSS d'un élément multimédia, tel qu'une vidéo ou une image. Vous pouvez utiliser conjointement des sous-titres et des éléments multimédias.Si seuls certains champs sont spécifiés dans le paramètre
ClipsParam, les sous-titres non spécifiés restent vides par défaut et les éléments multimédias par défaut du modèle sont utilisés.Vous pouvez définir une police pour les sous-titres ainsi qu'un mode d'adaptation pour les vidéos et les images. Pour plus d'informations, consultez Fonctionnalités étendues.
-
Appelez le service de production.
Appelez l'opération SubmitMediaProducingJob pour soumettre une tâche de montage et de production. Spécifiez les paramètres
TemplateIdetClipsParam.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());
Fonctionnalités étendues
Définir le mode d'adaptation des vidéos et des images
Utilisez le champ .adapt_type pour définir le mode de mise à l'échelle des vidéos et des images. Les valeurs valides sont les suivantes :
0 : Le contenu est mis à l'échelle.
1 : Le contenu conserve son rapport hauteur/largeur et remplit la dimension donnée au centre.
2 : Le contenu conserve son rapport hauteur/largeur, mais est mis à l'échelle pour s'adapter à la dimension donnée au centre.
3 : Le contenu est mis à l'échelle pour remplir la dimension donnée, indépendamment du rapport hauteur/largeur.
{
"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
}
Modifier la police des sous-titres
Utilisez le champ .font_file pour définir la police des sous-titres. Vous pouvez également spécifier l'URL OSS pour utiliser des polices personnalisées. Pour plus d'informations sur les polices .
{
"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"
}
Autres paramètres
Le paramètre ClipsParam prend également en charge les paramètres suivants pour modifier les contenus :
{
// 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.
}