Untuk mengontrol perilaku Transformer, Anda dapat mengonfigurasi opsi di platform API atau mengganti bagian fungsi sepenuhnya dengan menulis implementasi kustom antarmuka dan meneruskannya. Halaman ini menjelaskan beberapa contoh.
Mengontrol konfigurasi codec
Secara default, Transformer akan kembali ke resolusi yang didukung jika encoder hardware perangkat tidak menerima resolusi output yang diminta. Misalnya, Transformer dapat menyelaraskan lebar dan tinggi output agar menjadi kelipatan 2 atau 16 seperti yang sering diperlukan oleh encoder hardware. Anda dapat menonaktifkan perilaku ini sehingga Transformer akan menampilkan error jika tidak dapat menghasilkan resolusi output yang diperlukan:
Kotlin
transformerBuilder.setEncoderFactory( DefaultEncoderFactory.Builder(context).setEnableFallback(false).build() )
Java
transformerBuilder.setEncoderFactory( new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());
Demikian pula, DefaultEncoderFactory juga mendukung penggunaan setelan encoding kustom dengan opsi setRequestedVideoEncoderSettings.
Anda juga dapat mengganti sepenuhnya factory untuk encoder dan decoder guna mendapatkan kontrol penuh atas cara codec disiapkan.
Muxer kustom
Anda dapat menetapkan muxer kustom untuk menulis penampung media dengan memanggil Transformer.setMuxerFactory. Misalnya, jika Anda menerapkan muxer sendiri di
tingkat aplikasi, Anda dapat menulis wrapper yang mengimplementasikan Muxer
antarmuka, lalu menggunakan setMuxerFactory untuk menyuntikkannya ke Transformer.
Jika muxer kustom Anda mendukung penulisan stempel waktu negatif dalam daftar edit MP4, Anda
harus memastikan bahwa
Muxer.Factory#supportsWritingNegativeTimestampsInEditList menampilkan
true. Hal ini memungkinkan Transformer melakukan pengoptimalan, seperti pengeditan hanya pemangkasan menggunakan daftar edit MP4, tanpa perlu melakukan encoding ulang pada video. Untuk InAppMp4Muxer default, hal ini sudah didukung.