Çok öğeli düzenleme

Transformer'ı kullanarak videolar, medya öğeleri ve daha fazlası dahil olmak üzere resim ve ses dosyalarını kullanarak Composition oluşturun.

Besteyi Dışa Aktarma

Dönüşümleri uygulamak için (ör. efektler veya kırma düzenlemeleri) MediaItem haline getirmek için EditedMediaItem değeri gösterilir.

Ardından EditedMediaItem nesne birleştirilecek şekilde EditedMediaItemSequence Örneğin, iki düzenlenmiş bir EditedMediaItemSequence oluşturabilirsiniz videolar. EditedMediaItemSequence içindeki öğeler sırayla sıralanır ve zamanla örtüşmemesidir.

Composition, bir veya daha fazla EditedMediaItemSequence öğesinin kombinasyonudur nesneler'i tıklayın. Composition içindeki EditedMediaItemSequence nesnenin tümü karışık video ve işitsel öğeleri birleştirmenize olanak tanır.

Composition nesne, Dönüştürücü kullanılarak dışa aktarılabilir.

Burada, iki öğeden oluşan bir video öğesinin oluşturulmasına ve dışa aktarılmasına dair düzenlenmiş video klipler, üzerine bir ses parçası yerleştirilmiş:

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);

Desteklenen kullanım alanlarına örnekler

Bu, Transformer API'nin kullandığı kullanım alanlarının (olası her durumu içermeyen bir listesidir) bestelerle destekler:

  • Ses, resim ve video öğelerini sırayla birleştirme. Ancak tüm öğeler aynı parçalara sahip olmalıdır. Örneğin, bir reklam dizisi oluşturma (yalnızca ses dosyası ve ardından bir video dosyası içeren videolar)
  • Video öğesine arka plan sesi ekleme.
  • Besteye efekt ekleme.
  • Görsel kalitede daha iyi SDR çıkışı oluşturmak için HDR girişi SDR'ye ton eşleme.

Mevcut sınırlamalar

Bir bestedeki adım sıraları, şurada belirtilen koşulları karşılamalıdır: Transformer.start(). Ayrıca, Besteler:

  • EditedMediaItemSequence oynatma belirli bir ofsetle başlatılıyor.
  • Çapraz geçişli video veya ses parçaları

Özellik istekleri

Transformer API için özellik istekleriniz varsa Media3 GitHub deposu.