このトピックでは、IMS SDK を使用して SubmitMediaProducingJob API を呼び出し、バッチビデオ制作を実行する方法について説明します。
基本概念
バッチビデオ制作
バッチビデオ制作は、少数のオーディオクリップとビデオクリップを、さまざまなナレーションのバリエーションと組み合わせることで、複数のユニークなビデオを生成します。
利用シーン
ショートビデオプラットフォームでは、コンテンツの盗用を防ぐために重複排除アルゴリズムがよく使用されます。複数のチャンネルやアカウントでマーケティングキャンペーンを実施するには、ビデオ広告のユニークなバリエーションを作成する必要があります。バッチビデオ制作機能は、このプロセスを自動化します。SubmitMediaProducingJob API 呼び出しで タイムラインパラメーターをカスタマイズすることで、ニーズに合わせてさまざまなビデオ出力を生成できます。
課金
編集・制作ジョブを送信すると、複数の課金項目で料金が発生する場合があります。詳細については、「インテリジェント制作」をご参照ください。
仕組み
-
SubmitMediaProducingJob API を使用して、さまざまな タイムラインパラメーター設定で編集ジョブを送信することにより、ビデオ、オーディオ、画像、字幕クリップを完成したビデオに結合します。
-
タイムラインは、ビデオプロジェクトのクリップを配置し、エフェクトをデザインする場所です。タイムラインは、トラック、クリップ、エフェクトの 3 つの主要なオブジェクトで構成されます。詳細については、「タイムライン設定」をご参照ください。
-
インテリジェント制作機能は、ライブストリーム、ビデオオンデマンド (VOD)、および Object Storage Service (OSS) クリップの編集と制作、エフェクトレンダリング、テンプレートベースの制作をサポートします。詳細については、「インテリジェント制作の概要」をご参照ください。
事前準備
-
IMS を有効化済みであること。
-
Resource Access Management (RAM) ユーザーを作成し、その AccessKey ペアを取得済みであること。詳細については、「RAM ユーザーの作成と権限付与」をご参照ください。
ステップ 1: OSS バケットの作成
OSS コンソールにログインし、[バケット] > [バケットの作成] をクリックします。[リージョン] で [中国 (上海)] を選択します。バケット名はサンプルコードで必須であり、編集済みビデオの出力先として機能するため、メモしておいてください。
作成モードは [カスタム作成] を選択します。
ステップ 2: バッチビデオ制作コードの実行
-
環境をセットアップします。
-
オペレーティングシステム:Windows 8.1 以降、macOS、または Linux。
-
IntelliJ IDEA:2020.1 以降。
-
JDK:1.8 以降。
-
-
新しい Maven プロジェクトを作成してコードを実行します。
-
必要なサードパーティの依存関係をインポートします。
説明以下のサンプルコードのサーバー側 SDK のバージョンは参考用です。最新バージョンを取得するには、「サーバー側 SDK」をご参照ください。
<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>ice20201109</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.9</version> </dependency> </dependencies> -
ご利用の AccessKey ID と AccessKey Secret を設定します。詳細については、「認証情報の管理」をご参照ください。その他の認証方式については、「認証情報の管理」をご参照ください。
説明認証情報を管理するその他の方法については、「認証情報の管理」をご参照ください。
-
新しい Java クラスを作成し、以下のサンプルコードを貼り付けます。
-
コード内の bucket プレースホルダーを、ステップ 1 で作成したバケットの名前に置き換えます。
-
コードを実行してビデオを生成します。コードは次のワークフローを実行します。
タイムラインの生成 > ビデオ制作ジョブの送信 > ジョブステータスのポーリング > コンソールへのログ出力。
public static void main(String[] args) throws Exception { BatchProduce batchProduce = new BatchProduce(); batchProduce.initClient(); batchProduce.run(); }SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. start job. jobid: 150de5f285c942b0894f1150ad5e6d50, outputMediaUrl: http://oushu-test-shanghai.oss-cn-shanghai.aliyuncs.com/ice_output/e0852f92dd2041e19e0739f4a7cee064.mp4 waiting job finished... jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Init jobId: 150de5f285c942b0894f1150ad5e6d50, status:Processing jobId: 150de5f285c942b0894f1150ad5e6d50, status:Processing jobId: 150de5f285c942b0894f1150ad5e6d50, status:Processing jobId: 150de5f285c942b0894f1150ad5e6d50, status:Success all job finished. Process finished with exit code 0 -
ジョブのステータスが [Success] に変わると、outputMediaUrl は生成されたビデオの URL を提供します。バケットは非公開のため、この URL を直接開くことはできません。代わりに、OSS コンソールから署名付き URL をコピーしてビデオをプレビューする必要があります。
[バケット] リストからご利用のバケットを選択します。[ファイル管理] > [ファイルリスト] を選択し、ice_output/ ディレクトリを開きます。対象の .mp4 ファイルを選択します。詳細パネルで、HTTPS を有効にし、有効期限を設定し、[オブジェクト URL のコピー] をクリックして署名付き URL を取得します。
-
produceCount 変数は、生成するビデオの数を指定します。この produceCount の値を変更して、異なる数のビデオを出力します。サンプルテキストやビデオクリップを独自のコンテンツに置き換えることもできます。詳細については、「タイムライン設定」ドキュメントをご参照ください。
参考
次のステップ
-
タイムラインを変更してビデオや画像をミキシングおよび編集するには、「ビデオと画像のミキシング」をご参照ください。
-
タイムラインを変更してオーディオを処理するには、「オーディオ処理」をご参照ください。
-
タイムラインを変更して字幕や字幕テンプレートを操作するには、「字幕と字幕テンプレート」をご参照ください。
-
タイムラインを変更してトランジション、エフェクト、フィルターを適用するには、「トランジション、エフェクト、フィルター」をご参照ください。
-
タイムラインを変更してインテリジェント処理の結果をビデオ制作に組み込むには、「ビデオ制作におけるインテリジェント処理結果の利用」をご参照ください。
-
タイムラインを変更して他の設定を構成するには、「その他の設定」をご参照ください。