マルチアセット編集

Transformer を使用すると、複数のメディア アセット(動画や、 画像、音声ファイルを作成して、Composition を作成します。

楽曲のエクスポート

変換を適用するには 編集(エフェクトやトリミング編集など)を MediaItem にコピーするには、 EditedMediaItem を使用して、変換が適用されたアセットを表します。

その後、EditedMediaItem オブジェクトを連結して、 EditedMediaItemSequence。 たとえば、2 つの編集を加えた EditedMediaItemSequence を作成できます。 できます。EditedMediaItemSequence 内のアイテムは順番に並べ替えられ、 重複しないようにする必要があります

Composition は、1 つ以上の EditedMediaItemSequence を組み合わせたものです。 説明します。Composition 内のすべての EditedMediaItemSequence オブジェクトが混在しています。 動画アセットと音声アセットを組み合わせることができます。

Composition オブジェクトは、Transformer を使用してエクスポートできます。

2 つの動画アセットで構成される動画アセットを作成し、エクスポートする例を 音声トラックがオーバーレイされた編集済み動画クリップ:

Kotlin

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)

Java

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 リポジトリ