Transformer を使用すると、複数のメディア アセット(動画や、
画像、音声ファイルを作成して、Composition
を作成します。
楽曲のエクスポート
変換を適用するには
編集(エフェクトやトリミング編集など)を MediaItem
にコピーするには、
EditedMediaItem
を使用して、変換が適用されたアセットを表します。
その後、EditedMediaItem
オブジェクトを連結して、
EditedMediaItemSequence
。
たとえば、2 つの編集を加えた EditedMediaItemSequence
を作成できます。
できます。EditedMediaItemSequence
内のアイテムは順番に並べ替えられ、
重複しないようにする必要があります
Composition
は、1 つ以上の EditedMediaItemSequence
を組み合わせたものです。
説明します。Composition
内のすべての EditedMediaItemSequence
オブジェクトが混在しています。
動画アセットと音声アセットを組み合わせることができます。
Composition
オブジェクトは、Transformer を使用してエクスポートできます。
2 つの動画アセットで構成される動画アセットを作成し、エクスポートする例を 音声トラックがオーバーレイされた編集済み動画クリップ:
val transformer = ... // Set up Transformer instance
val video1 = EditedMediaItem.Builder(
MediaItem.fromUri(video1Uri))
.build()
val video2 = EditedMediaItem.Builder(
MediaItem.fromUri(video2Uri))
.build()
val videoSequence = EditedMediaItemSequence(
video1, video2)
val backgroundAudio = EditedMediaItem.Builder(
MediaItem.fromUri(audioUri))
.build()
val backgroundAudioSequence = EditedMediaItemSequence(
ImmutableList.of(backgroundAudio),
/* isLooping= */ true) // Loop audio track through duration of videoSequence
val composition = Composition.Builder(
videoSequence,
backgroundAudioSequence)
.build()
val filePath = ... // Provide file path to save Composition
transformer.start(composition, filePath)
Transformer transformer = ... // Set up Transformer instance
EditedMediaItem video1 = new EditedMediaItem.Builder(
MediaItem.fromUri(video1Uri))
.build();
EditedMediaItem video2 = new EditedMediaItem.Builder(
MediaItem.fromUri(video2Uri))
.build();
EditedMediaItemSequence videoSequence = new EditedMediaItemSequence(
video1, video2);
EditedMediaItem backgroundAudio = new EditedMediaItem.Builder(
MediaItem.fromUri(audioUri))
.build();
EditedMediaItemSequence backgroundAudioSequence = new EditedMediaItemSequence(
ImmutableList.of(backgroundAudio),
/* isLooping= */ true); // Loop audio track through duration of videoSequence
String filePath = ... // Provide file path to save Composition
Composition composition = new Composition.Builder(
videoSequence,
backgroundAudioSequence)
.build();
transformer.start(composition, filePath);
サポートされるユースケースの例
この表は、Transformer API が実装するユースケースの一部であり、 Compositions では以下をサポートしています。
- 音声、画像、動画のアセットを順次組み合わせる。ただし、すべてのアイテムが 同じトラックである必要があります。たとえば、単語にシーケンスを その後に動画ファイルが続きます。
- 動画アセットにバックグラウンド音声を追加する。
- コンポジションにエフェクトを追加する。
- HDR 入力を SDR にトーン マッピングすることで、より高画質な SDR 出力を生成します。
現時点における制約
コンポジション内のシーケンスは、
Transformer.start()
。
さらに、
構成:
- オフセットで
EditedMediaItemSequence
の再生を開始します。 - 動画トラックや音声トラックのクロスフェード
機能リクエスト
Transformer API の機能リクエストがある場合は、 Media3 GitHub リポジトリ。