Intelligent Cloud Editor は、プロフェッショナルなオンラインビデオ編集を提供します。オーディオ、ビデオ、テキストなどのアセットから新しいビデオを編集および制作できます。このトピックでは、編集プロジェクトの作成と管理、コンテンツの編集など、オンライン編集機能の使用方法について説明します。ビデオ編集、ライブストリーム編集、高度なテンプレート編集を実行できます。スマート機能を使用して、ステッカー、フィルター、効果、字幕を追加することもできます。
特徴
ビデオ編集: 複数のビデオクリップ、オーディオトラック、イメージを編集します。トリミング、スプライス、効果の追加ができます。
ライブストリーム編集: ライブストリーム中にビデオコンテンツをリアルタイムで編集および出力します。
高度なテンプレート編集: プリセットテンプレートに基づいて高品質のビデオをすばやく生成します。
前提条件
必要なメディアアセットをメディアライブラリにアップロードします。詳細については、「コンソールでメディアアセットをアップロードする」をご参照ください。
音声合成機能を使用するには、デフォルトのストレージパスを構成します。詳細については、「ストレージの場所を構成する」をご参照ください。
コンソールを使用したオンライン編集
オンライン編集ページに移動
左側のナビゲーションウィンドウで、 を選択して、オンライン編集ページに移動します。
編集プロジェクトの作成
ビデオ編集プロジェクトの作成
Intelligent Cloud Editor は、ライブストリーム編集および録画ファイル編集サービスを提供します。ライブストリーム中にビデオコンテンツをリアルタイムで編集および出力できます。
[ビデオ編集プロジェクト] タブをクリックします。
[編集プロジェクトの作成] をクリックし、プロジェクト名を入力して、[OK] をクリックします。
作成したプロジェクトの [操作] 列で、[編集] をクリックして標準編集プロジェクトページを開きます。
ライブストリーム編集プロジェクトの作成
[ライブストリーム編集プロジェクト] タブをクリックします。
[ライブストリーム編集の作成] をクリックし、ライブストリーム編集プロジェクトのパラメーターを構成して、[OK] をクリックします。

パラメーター
説明
ライブストリーム編集名
ライブストリーム編集プロジェクトのカスタム名。名前には、文字、数字、スペース、アンダースコア (_) のみを含めることができます。名前の長さは最大 60 文字です。
ライブストリーム URL
編集する Alibaba Cloud ライブストリームの URL を入力します。ライブストリーム URL の取得方法の詳細については、「取り込み URL とストリーミング URL の生成」をご参照ください。現在、HTTP Live Steaming (HLS) プロトコルのみがサポートされています。これは、HTTPS 経由の m3u8 ライブストリームを意味します。
説明ライブストリーム録画を有効にした後にのみ、ライブストリームを編集できます。詳細については、「OSS への録画と保存」および「VOD への録画と保存」をご参照ください。
ストレージメソッド
生成されたライブストリームクリップの保存方法を構成します。Object Storage Service (OSS) または ApsaraVideo VOD に保存できます。
ストレージの場所
ApsaraVideo VOD システムに追加された ApsaraVideo VOD バケットと独自の OSS バケットを追加できます。利用可能なバケットがない場合は、ApsaraVideo VOD コンソールで新しいバケットを作成できます。ApsaraVideo VOD システムは、各ストレージリージョンにストレージの場所を割り当てます。ApsaraVideo VOD をアクティベートした後、このアドレスを使用する前に有効にする必要があります。詳細については、「ストレージバケットの管理」をご参照ください。
Object Storage Service (OSS) バケットを追加できます。利用可能なバケットがない場合は、OSS コンソールで新しいバケットを作成できます。詳細については、「バケットの作成」をご参照ください。
開始時間
ライブストリーム編集の開始時刻を選択します。[今すぐ開始] または [スケジュールされた時刻に開始] を選択できます。ライブストリームが開始される前に、オンライン編集リストでスケジュールを変更できます。ライブストリームが開始されると、録画が自動的に開始され、ストリームをリアルタイムで編集できます。
作成したプロジェクトの [操作] 列で、[表示] をクリックしてライブストリーム編集プロジェクトページを開きます。ライブストリーム編集の詳細については、「編集機能」をご参照ください。
高度なテンプレート編集プロジェクトの作成
[高度なテンプレート編集プロジェクト] タブをクリックします。
[編集プロジェクトの作成] をクリックし、プロンプトに従って [OK] をクリックして [高度なテンプレート] ページを開きます。
高度なテンプレートの [操作] 列で、[テンプレートの使用] をクリックします。プロジェクト名を入力し、[OK] をクリックして高度なテンプレート編集プロジェクトページを開きます。高度なテンプレート編集の詳細については、「編集機能」をご参照ください。
編集プロジェクトの管理
[操作] 列で、[編集]、[コピー]、または [テンプレートとしてエクスポート] をクリックして、プロジェクトを編集、コピー、またはエクスポートできます。
アイコンをクリックしてから [削除] をクリックしてプロジェクトを削除することもできます。
このセクションでは、標準編集プロジェクトを例として使用します。他の種類の編集プロジェクトのプロシージャも同様です。

編集機能
ビデオ編集
ビデオ編集プロジェクトページを開きます。

ビデオ編集ページは、次のエリアで構成されています。
番号
説明
①
アセットエリア
②
プレビューエリア
③
プロパティ編集エリア
④
編集操作エリア
アセットをインポートします。
アセットエリアの右上隅にある [アセットのインポート] をクリックして、現在のリージョンのメディアライブラリを開きます。次に、必要なアセットを選択します。

メディアライブラリに必要なアセットが含まれていない場合は、アップロードできます。詳細については、「コンソールでメディアアセットをアップロードする」をご参照ください。
アセットを編集操作エリアに追加します。
アセットの
アイコンをクリックするか、アセットを編集操作エリアのトラックにドラッグします。
[ステッカー]、[フィルター]、[効果] などのパブリックリソースを追加して、マルチトラックアセットを作成し、結果をリアルタイムでプレビューすることもできます。
アセットを編集します。
アセットのプロパティをトリミング、プレビュー、または調整する
編集操作エリアのトラックでアセットを選択します。このエリアの左上隅にあるツールを使用して、ビデオをトリミングまたは削除できます。プレビューエリアでは、アセットのプレビュー、ドラッグ、拡大縮小、配置ができます。プロパティ編集エリアでは、アセットのプロパティを調整できます。

トランジションの追加
トランジションを追加するタイムライン上のビデオまたはイメージを選択します。アセットエリアで、[トランジション] タブをクリックします。Swirl などのトランジションを選択し、プレビューエリアで効果を表示します。

字幕の自動生成
字幕を生成するビデオを選択します。プロパティ編集エリアで、[基本] タブをクリックし、[字幕の自動生成] をクリックします。生成された字幕は、自動的に新しいトラックに追加されます。

ビデオのオーディオ波形を表示
編集操作エリアでビデオを選択します。
アイコンをクリックし、表示する波形のタイプを選択します。波形は、トラック上のビデオの下に表示されます。
ナレーションの自動生成
ナレーションを生成する字幕を選択します。
アイコンをクリックして音声タイプを設定し、[ナレーションの自動生成] をクリックします。生成されたナレーションは、自動的に新しいトラックに追加されます。
説明「[最初にストレージパスを構成してください]」というメッセージが表示された場合は、ストレージパスを構成する必要があります。詳細については、「ストレージの場所を構成する」をご参照ください。
マーカーまたはマーク付きセグメントの追加
編集操作エリアでビデオを選択します。タイムラインを特定の位置にドラッグします。
アイコンをクリックしてマーカーを追加します。
または
アイコンをクリックして、マーク付きセグメントのインポイントとアウトポイントを追加します。
および
アイコンをクリックするか、トラック上のビデオの上にあるマーカーとマーク付きセグメントをクリックして、詳細を表示することもできます。
ビデオからオーディオトラックを分離
編集操作エリアでビデオを選択します。プロパティ編集エリアで、[基本] タブをクリックし、[オーディオトラックの分離] をクリックします。分離されたオーディオトラックは、自動的に新しいトラックに追加されます。

デジタルヒューマンのカスタマイズ (パブリックプレビュー)
パブリックプレビュー期間中、Intelligent Cloud Editor は 4 つの公式デジタルヒューマンを無料トライアルで提供します。アセットエリアでは、テキスト駆動または音声駆動のデジタルヒューマンを追加できます。必要に応じてパラメーターを構成し、[デジタルヒューマンを開始してビデオを生成] をクリックします。ビデオが生成されると、デジタルヒューマンがビデオトラックに追加されます。
公式のデジタルヒューマンは実在の人物でトレーニングされていないため、結果が最適でない場合があります。より高い要件がある場合は、DingTalk グループ 84650000851 に参加して、デジタルヒューマン機能の Professional Edition を体験できます。

編集が完了したら、右上隅の [保存] をクリックして、現在の編集プロジェクトを保存します。
右上隅の [テンプレートとして生成] または [エクスポート] をクリックして、このプロジェクトからテンプレートを生成したり、メディアライブラリにエクスポートしたりすることもできます。
ライブストリーム編集
ライブストリーム編集プロジェクトページを開きます。

ライブストリーム編集ページは、次のエリアで構成されています。
番号
説明
①
ライブ信号ソースエリア
②
ビデオプレビューエリア
③
編集操作エリア
④
クリップリストエリア
ビデオ分割を実行します。
編集操作エリアの左上隅にある
または
アイコンをクリックします。次に、マウスの左ボタンを押したままクリップの長さを調整し、[クリップの生成] をクリックします。生成されたクリップは自動的に保存されます。生成されたビデオクリップは、クリップリストエリアで表示できます。
アイコンをクリックして操作を取り消したり、[クリップのプレビュー] をクリックしてクリップをプレビューしたりすることもできます。ビデオクリップを編集します。
クリップリストエリアでビデオクリップを選択します。右上隅の [ビデオ編集にエクスポート] をクリックしてビデオクリップを編集します。詳細については、「編集機能」をご参照ください。
高度なテンプレート編集
高度なテンプレート編集プロジェクトページを開きます。

高度なテンプレート編集ページは、次のエリアで構成されています。
番号
説明
①
ビデオプレビューエリア
②
編集グループリストエリア
③
編集グループアセットエリア
編集グループリストエリアで、編集グループをクリックしてアセットを置き換えます。
ビデオまたはイメージアセットを置き換えます。
編集グループアセットエリアでビデオまたはイメージをクリックし、[アセットの置換] をクリックします。現在のリージョンのメディアライブラリが開きます。必要に応じて置換アセットを選択します。

メディアライブラリに必要なアセットが含まれていない場合は、アップロードできます。詳細については、「コンソールでメディアアセットをアップロードする」をご参照ください。
テキストアセットを置き換えます。
プレビューエリアでテキストを編集するか、編集グループアセットエリアでテキストプロパティを設定できます。

オプション:ビデオをプレビューします。
編集グループリストエリアで、
アイコンをクリックしてビデオをプレビューします。説明編集グループが変更された場合、ビデオをプレビューするとビデオが再制作されます。このプロセスには、オンライン編集およびストレージ料金が発生します。課金の詳細については、「Intelligent Cloud Editor」および「ストレージ料金」をご参照ください。
ビデオを制作します。
右上隅の [ビデオの制作] をクリックします。必要に応じてエクスポートされたビデオのパラメーターを構成し、[OK] をクリックして制作されたビデオをメディアライブラリにエクスポートします。
OpenAPI を使用したオンライン編集
ビデオ編集
ビデオ編集は、タイムライン上で複数のビデオクリップ、オーディオトラック、イメージ、およびその他のアセットを組み合わせて、新しいビデオファイルを生成するプロセスです。
API 操作
ビデオ制作ジョブの送信: SubmitMediaProducingJob 操作を呼び出して、1 つ以上のビデオ、オーディオ、イメージ、および字幕アセットを完成品に結合します。この操作は、さまざまな編集ニーズを満たすために、複雑なタイムライン構成をサポートします。
ビデオ制作ジョブのクエリ: GetMediaProducingJob 操作を呼び出し、
JobIdを渡してジョブのステータスと結果をクエリします。
タイムライン構成
タイムライン構成はビデオ編集のコアであり、編集ロジックを定義するためのキーです。タイムラインは、ビデオ、オーディオ、イメージ、およびその他のアセットが時間とともにどのように配置および結合されるかを記述します。タイムラインは、トラック、アセット、および効果で構成されます。詳細な構成命令については、「タイムライン構成」をご参照ください。
基本的なタイムライン構造
{
"VideoTracks": [
{
"VideoTrackClip": [
{
"MediaId": "アセット ID",
"MediaURL":"ビデオトラッククリップの OSS URL"
}
]
}
],
"AudioTracks": [
{
"AudioTrackClip": [
{
"MediaId": "オーディオアセット ID",
"MediaURL":"オーディオトラッククリップの OSS URL"
}
]
}
]
}VideoTracks: ビデオトラック。ビデオまたはイメージアセットを配置するために使用されます。
AudioTracks: オーディオトラック。オーディオアセットを配置するために使用されます。
Clips: 各トラックのクリップ。アセット ID、開始時刻、および期間が含まれます。
タイムラインの例
チュートリアルには、さまざまな複雑なビデオ編集のニーズを満たすためにタイムライン構成を使用する方法を示す多くの例が含まれています。次の表に、一般的なシナリオと構成例を示します。
タイムライン構成の例 | 説明 |
水平ビデオの垂直への変換、ビデオのクリッピング、ビデオとイメージのミキシング、ウォーターマーク、ステッカー、GIF ステッカーの追加などの機能をサポートします。 | |
ミュート、ボリューム調整、オーディオミキシング、オーディオ抽出、ボリューム正規化などの機能をサポートします。 | |
ビデオへの字幕の追加、スタイル付きテキストの設定、字幕の自動折り返しの有効化、字幕の配置、字幕効果の追加などの機能をサポートします。 | |
さまざまなトランジション (フェードインやフェードアウトなど)、視覚効果 (ぼかしやシャープなど)、フィルター (白黒やレトロなど) をサポートします。 | |
音声のテキストへの変換とビデオへの字幕のマージ、テキストの音声への変換とビデオへのオーディオのマージ、SSML を使用したリズムや発音の制御などの機能をサポートします。 | |
グローバルなバックグラウンドイメージ、グローバルなウォーターマークロゴなどの追加をサポートします。 |
SDK を使用したオーディオおよびビデオ編集
Intelligent Media Services (IMS) サーバーサイド SDK をインストールし、必要な構成を完了します。詳細については、「準備」をご参照ください。
ライブストリーム編集
ライブストリーム編集ジョブの送信: SubmitLiveEditingJob 操作を呼び出します。ライブストリーム編集ジョブを送信すると、ジョブはキューに追加され、非同期で実行されます。
ライブストリーム編集ジョブのクエリ: GetLiveEditingJob 操作を呼び出して、jobId に基づいてジョブのステータスをクエリします。
メディアアセット情報の取得: GetMediaInfo 操作を呼び出して、MediaId に基づいて生成されたメディアアセットの情報をクエリします。
高度なテンプレート編集
テンプレート情報を取得します。
GetTemplate 操作を呼び出して、テンプレート情報を取得します。
TemplateIdパラメーターでテンプレート ID を指定します。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());次の出力が返されます。
{ "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":"" } }説明組み込みテンプレートを使用することもできます。組み込みテンプレートの使用方法は、前のセクションで説明した方法と似ています。組み込みテンプレートの詳細については、「高度なテンプレート」をご参照ください。
ClipsParamパラメーターのtextとmediaIdを実際の値に置き換えます。{ "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****" }説明ClipsParamは、制作サービスのパラメーターです。テキストを字幕に、mediaId をビデオやイメージを含むメディアアセットの ID または OSS URL に置き換えることができます。字幕とメディアアセットを一緒に使用できます。ClipsParamパラメーターで一部のフィールドのみが指定されている場合、指定されていない字幕はデフォルトで空になり、テンプレートのデフォルトのメディアアセットが使用されます。字幕のフォントや、ビデオとイメージの適応モードを設定できます。詳細については、「拡張機能」をご参照ください。
制作サービスを呼び出します。
SubmitMediaProducingJob 操作を呼び出して、編集および制作ジョブを送信します。
TemplateIdおよびClipsParamパラメーターを指定します。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());