インテリジェントプロダクションでは、高度なテンプレートをビデオ編集に使用して、高度なエフェクトと複雑なアニメーションスタイルを実現できます。このトピックでは、高度なテンプレートを作成および使用する方法について説明します。
高度なテンプレートの作成
IMSコンソールの使用
VE Exporterを使用して、AEプロジェクトをZIP形式のテンプレートファイルとしてエクスポートします。
テンプレートファイルを テンプレートファクトリー にアップロードします。
API操作の呼び出し
AddTemplate 操作を呼び出してテンプレートを作成し、高度なテンプレートのOSS URLを指定します。
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\"}"); // oss_urlは高度なテンプレートのOSS URLです。
AddTemplateResponse response = iceClient.addTemplate(request);
System.out.println("templateId : " + response.getBody().getTemplate().getTemplateId());この例の oss_url の値は参照用です。実際のOSS URLを指定する必要があります。
高度なテンプレートの使用
IMSコンソールの使用
高度なテンプレートを使用してビデオを編集する方法の詳細については、「高度なテンプレートを使用したビデオの編集」をご参照ください。
API操作の呼び出し
テンプレート情報を取得します。
GetTemplate 操作を呼び出して、テンプレート情報を取得します。
TemplateIdパラメーターでテンプレートIDを指定します。GetTemplateRequest request = new GetTemplateRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); // テンプレートID GetTemplateResponse response = iceClient.getTemplate(request); GetTemplateResponseBody.GetTemplateResponseBodyTemplate template = response.getBody().getTemplate(); System.out.println("templateId : " + template.getTemplateId()); System.out.println("clipsParam : " + template.getClipsParam());次の出力が返されます。
{ "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\"}", // oss_urlは高度なテンプレートのOSS URLです。 "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":"" } }説明組み込みテンプレートも使用できます。組み込みテンプレートを使用する方法は、前のセクションで説明した方法と似ています。組み込みテンプレートの詳細については、「高度なテンプレート」をご参照ください。
textとmediaIdのClipsParamパラメーターを実際の値に置き換えます。{ "Text0":"Subtitle 0", // 字幕 0 "Text1":"Subtitle 1", // 字幕 1 "Text2":"Subtitle 2", // 字幕 2 "Text3":"Subtitle 3", // 字幕 3 "Text4":"Subtitle 4", // 字幕 4 "Text5":"Subtitle 5", // 字幕 5 "Text6":"Subtitle 6", // 字幕 6 "Text7":"Subtitle 7", // 字幕 7 "Media0":"****20b48fb04483915d4f2cd8ac****", // メディアアセットID "Media1":"****20b48fb04483915d4f2cd8ac****", // メディアアセットID "Media2":"****20b48fb04483915d4f2cd8ac****", // メディアアセットID "Media3":"****20b48fb04483915d4f2cd8ac****" // メディアアセットID }説明ClipsParamはプロダクションサービスのパラメーターです。テキストを字幕に置き換え、 mediaId をビデオまたは画像を含むメディアアセットの ID または OSS URL に置き換えることができます。字幕とメディアアセットを一緒に使用できます。ClipsParamパラメーターに一部のフィールドのみが指定されている場合、指定されていない字幕はデフォルトで空のままになり、テンプレートのデフォルトのメディアアセットが使用されます。字幕のフォントと、ビデオと画像の適応モードを設定できます。詳細については、「拡張機能」をご参照ください。
プロダクションサービスを呼び出します。
SubmitMediaProducingJob 操作を呼び出して、編集およびプロダクションジョブを送信します。
TemplateIdパラメーターとClipsParamパラメーターを指定します。SubmitMediaProducingJobRequest request = new SubmitMediaProducingJobRequest(); request.setTemplateId("****20b48fb04483915d4f2cd8ac****"); // テンプレートID 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**** "}"); // テンプレートパラメーター。テキストを字幕に置き換え、mediaIdをメディアアセットIDまたはOSS URLに置き換えます。 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());
拡張機能
ビデオと画像の適応モードを設定する
.adapt_type フィールドを使用して、ビデオと画像のスケーリングモードを設定します。有効な値:
0: マテリアルはスケーリングされます。
1: マテリアルはアスペクト比を維持し、中央の指定された寸法を塗りつぶします。
2: マテリアルはアスペクト比を維持しますが、中央の指定された寸法に合わせてスケーリングされます。
3: マテリアルは、アスペクト比に関係なく、指定された寸法を塗りつぶすようにスケーリングされます。
{
"Text7":"Subtitle 7", // 字幕 7
"Text6":"Subtitle 6", // 字幕 6
"Text5":"Subtitle 5", // 字幕 5
"Text4":"Subtitle 4", // 字幕 4
"Text3":"Subtitle 3", // 字幕 3
"Text2":"Subtitle 2", // 字幕 2
"Text1":"Subtitle 1", // 字幕 1
"Text0":"Subtitle 0", // 字幕 0
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg", // メディアアセットのOSS URL
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg", // メディアアセットのOSS URL
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg", // メディアアセットのOSS URL
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg", // メディアアセットのOSS URL
"Media3.adapt_type":0, // 適応モード
"Media2.adapt_type":1, // 適応モード
"Media1.adapt_type":2, // 適応モード
"Media0.adapt_type":3 // 適応モード
}字幕のフォントを変更する
.font_file フィールドを使用して、字幕のフォントを設定します。カスタムフォントを使用するために OSS URL を設定することもできます。フォントの詳細については、。
{
"Text7.font_file":"SimSun", // フォントファミリ名
"Text6.font_file":"Yuanti", // フォントファミリ名
"Text5.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font1.ttf", // フォントファイルのOSS URL
"Text4.font_file":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-font2.ttf", // フォントファイルのOSS URL
"Text7":"Subtitle 7", // 字幕 7
"Text6":"Subtitle 6", // 字幕 6
"Text5":"Subtitle 5", // 字幕 5
"Text4":"Subtitle 4", // 字幕 4
"Text3":"Subtitle 3", // 字幕 3
"Text2":"Subtitle 2", // 字幕 2
"Text1":"Subtitle 1", // 字幕 1
"Text0":"Subtitle 0", // 字幕 0
"Media3":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object01.jpg", // メディアアセットのOSS URL
"Media2":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object02.jpg", // メディアアセットのOSS URL
"Media1":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object03.jpg", // メディアアセットのOSS URL
"Media0":"https://your-bucket.oss-cn-shanghai.aliyuncs.com/object04.jpg" // メディアアセットのOSS URL
}その他の設定
ClipsParam パラメーターは、マテリアルを編集するための次の設定もサポートしています。
{
// メディアアセット
"Media1": "a8f5f167f44f4964e6c998dee827110c", // メディアID
"Media1.loop": 1, // この設定はビデオと GIF に適用されます。 0: エンジンのデフォルトのループロジックを使用します。 1: マテリアルをループします。 2: マテリアルをループしません。
"Media1.volume": 0.5, // この設定はビデオに適用されます。 0 以上の値を指定する必要があります。有効な値: 0 ~ 1。デフォルト値: 0。
"Media1.adapt_type": 0, // 適応モード。 0: マテリアルはスケーリングされません。 1: マテリアルはアスペクト比を維持し、中央の指定された寸法を塗りつぶします。 2: マテリアルはアスペクト比を維持しますが、中央の指定された寸法に合わせてスケーリングされます。 3: マテリアルは、アスペクト比に関係なく、指定された寸法を塗りつぶすようにスケーリングされます。 4: transform フィールドで指定された行列を使用します。デフォルト値: 1。
"Media1.transform": [a,c,e,b,d,f], // [scale, skewX, transX, skewY, scaleY, transY] 形式の行行列。行列は、元の画像のローカル座標系です。デフォルトでは単位行列が使用されます。
"Media1.clip_start": 0.0, // オプション。ビデオのトリミングの開始時間。 clip_end の値は clip_start の値よりも大きくなければなりません。
"Media1.clip_end": 10.0, // ビデオのトリミングの終了時間。 0 より大きい値は、ビデオのトリミングが必要であることを示します。 0 以下の値は、ビデオの最後にビデオのトリミングが不要であることを示します。
// 字幕
"Text1":"Test subtitles", // テスト字幕
"Text1.adapt": true, // テキストの適応を有効にするかどうかを指定します。このパラメーターは、テキストボックスタイプのテキストに対してのみ有効です。デフォルトでは、テンプレートの適応方法が使用されます。
"Text1.fill": "#FFFFFF", // テキストの塗りつぶしの色。
"Text1.stroke": "#FFFFFF", // テキストのアウトラインの色。
"Text1.stroke_width": 0.0, // テキストのアウトラインの幅。
"Text1.stroke_over_fill": false, // アウトラインの色が塗りつぶしの色よりも上にあるかどうかを指定します。
"Text1.size": 10, // テキストサイズ (ピクセル単位)。
"Text1.font_file": "SimSun" // フォントファミリの名前。
}