Dengan menggunakan Transformer, Anda dapat menggabungkan
beberapa aset media, seperti video,
file gambar, dan audio untuk membuat Composition
.
Mengekspor Komposisi
Untuk menerapkan transformasi
(seperti efek atau memangkas hasil edit) ke MediaItem
, Anda harus membuat
EditedMediaItem
untuk mewakili aset yang memiliki transformasi yang diterapkan padanya.
Objek EditedMediaItem
kemudian dapat digabungkan untuk membuat
EditedMediaItemSequence
.
Misalnya, Anda dapat membuat EditedMediaItemSequence
dengan dua file yang telah diedit
video. Item di dalam EditedMediaItemSequence
diurutkan secara berurutan dan
tidak tumpang tindih dalam waktu yang ditentukan.
Composition
adalah kombinasi dari satu atau beberapa EditedMediaItemSequence
objek terstruktur dalam jumlah besar. Semua objek EditedMediaItemSequence
di Composition
dicampur
sehingga Anda dapat menggabungkan aset video dan audio.
Objek Composition
dapat diekspor menggunakan Transformer.
Berikut contoh pembuatan dan ekspor aset video yang terdiri dari dua klip video yang diedit, dilapisi dengan trek audio:
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);
Contoh kasus penggunaan yang didukung
Ini adalah daftar tidak lengkap kasus penggunaan yang dijalankan Transformer API didukung dengan Komposisi:
- Menggabungkan aset audio, gambar, dan video secara berurutan. Namun, semua item harus memiliki trek yang sama. Misalnya, Anda tidak boleh memiliki urutan yang berisi file khusus audio, diikuti dengan file video.
- Menambahkan audio latar belakang ke aset video.
- Menambahkan efek ke Komposisi.
- Memetakan input HDR ke SDR untuk menghasilkan output SDR dengan kualitas visual yang lebih baik.
Batasan saat ini
Urutan dalam Komposisi harus memenuhi kondisi yang diuraikan dalam
Transformer.start()
Selain itu, operasi berikut belum didukung saat bekerja dengan
Komposisi:
- Memulai pemutaran
EditedMediaItemSequence
dengan offset. - Trek video atau audio crossfading
Permintaan fitur
Jika Anda memiliki permintaan fitur untuk Transformer API, ajukan masalah pada Repositori GitHub Media3.