Melihat format yang didukung ExoPlayer untuk pengantar format media secara umum. Keterbatasan yang sama pada pemuatan, ekstraksi, dan streaming decoding diterapkan dengan Transformer, meskipun Transformer tidak mendukung Paket modul decoder software ExoPlayer.
Transformator juga mengandalkan MediaCodec
untuk encoding, dan perlu multipleks, atau
mux, menghasilkan file media, yang membatasi format output yang didukung. Lihat
Codec video MediaCodec
untuk informasi lebih lanjut tentang
keterbatasan pengkodean dan
MediaMuxer
untuk batasan yang berlaku bagi penampung media output. Hanya transformator
menghasilkan file MP4.
Secara default, Transformer
menggunakan MediaMuxer
, tetapi InAppMuxer
masih dalam proses
tersedia secara opsional untuk menghindari beberapa batasan MediaMuxer
terkait
struktur {i>reference frame<i} dan format sampel yang didukung. Muxer {i>default<i} akan
menjadi muxer dalam aplikasi
dalam rilis mendatang.
Dukungan gambar
Transformer menggunakan BitmapFactory
untuk memuat dan mendekode semua aset gambar, jadi
Transformer mendukung semua format yang dilakukan BitmapFactory. Lihat
Dukungan gambar
untuk jenis gambar yang didukung. Untuk format multi-gambar (mis. gif), satu gambar
frame dari container ditampilkan jika DefaultAssetLoaderFactory
data
Format khusus
Transformer mendukung penanganan input dalam format media baru yang menyediakan dibandingkan dengan format konvensional.
Menangani video HDR
Kini semakin banyak perangkat yang mendukung video HDR gambar, sehingga memberikan hasil yang lebih jernih dan akurat warna dan rentang kecerahan yang lebih besar.
Transformer mendukung pengeditan video HDR mulai dari Android 13 (level API 33) dan seterusnya
pada perangkat dengan dukungan encoding yang diperlukan. Saat mengedit video HDR, semua efek GL
efek video harus menangani komponen warna floating point 16-bit dan BT.2020
ruang warna. HDR_MODE_KEEP_HDR
adalah mode default saat membuat
Composition
. Jika pengeditan HDR tidak didukung, Transformer
akan kembali menggunakan HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL
.
Konversi HDR ke SDR, yang juga dikenal sebagai pemetaan nada, didukung dari Android
10 (API level 29) dan seterusnya pada perangkat dengan decoding dan OpenGL yang diperlukan
dukungan teknis IT. Ini berguna saat berbagi media HDR ke aplikasi atau layanan lain yang
tidak mendukung penyerapan konten HDR. Untuk mengaktifkan pemetaan nada menggunakan panggilan OpenGL
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
saat membuat
Composition
. Mulai Android 12 (level API 31) dan seterusnya, MediaCodec
juga mendukung pemetaan nada di beberapa perangkat, termasuk semua perangkat yang menjalankan
Android 13 atau yang lebih baru yang dapat merekam video HDR. Untuk mengaktifkan pemetaan nada menggunakan
MediaCodec
memanggil setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
.
Menangani media gerak lambat
Video gerak lambat menyertakan metadata yang menunjukkan kecepatan setiap bagian streaming akan diputar. Perataan adalah proses menghasilkan streaming video berdasarkan video gerak lambat, tetapi bagiannya dipercepat atau diperlambat berdasarkan metadata, sehingga dapat diputar dengan benar bahkan pada pemain yang tidak menerapkan metadata gerak lambat.
Untuk meratakan streaming gerak lambat, gunakan builder setFlattenForSlowMotion
pada EditedMediaItem
.
Kotlin
val editedMediaItem = EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build() val transformer = Transformer.Builder(context).addListener(transformerListener).build() transformer.start(editedMediaItem, outputPath)
Java
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build(); Transformer transformer = new Transformer.Builder(context).addListener(transformerListener).build(); transformer.start(editedMediaItem, outputPath);
Ini memungkinkan Anda untuk mendukung video gerak lambat tanpa perlu mengkhawatirkan penanganan format khusus ini. Yang perlu Anda lakukan adalah menyimpan dan memainkan versi rata-rata dari video bukanlah versi aslinya.