Pour contrôler le comportement de Transformer, vous pouvez configurer des options dans la surface de l'API ou remplacer complètement des fonctionnalités en écrivant des implémentations personnalisées d'interfaces et de les transmettre. Cette page décrit quelques exemples.
Contrôler la configuration du codec
Par défaut, Transformer applique une résolution compatible si le l'encodeur matériel de l'appareil n'accepte pas la résolution de sortie demandée. Pour Exemple : le transformateur peut aligner la largeur et la hauteur de sortie pour qu'elles soient un multiple de 2 ou 16, comme souvent requis par les encodeurs matériels. Vous pouvez désactiver ce comportement afin que Transformer génère une erreur s'il ne peut pas produire résolution de sortie:
Kotlin
transformerBuilder .setEncoderFactory( DefaultEncoderFactory.Builder(context) .setEnableFallback(false) .build())
Java
transformerBuilder .setEncoderFactory( new DefaultEncoderFactory.Builder(context) .setEnableFallback(false) .build());
De même, DefaultEncoderFactory
accepte l'encodage personnalisé.
avec l'option setRequestedVideoEncoderSettings
.
Vous pouvez aussi remplacer complètement les fabriques d'encodeurs et de décodeurs un contrôle total sur la configuration des codecs.
Muxers personnalisés
Vous pouvez définir un multiplexeur personnalisé pour écrire des conteneurs multimédias en appelant
Transformer.setMuxerFactory
Par exemple, si vous implémentez votre propre multiplexeur
Au niveau de l'application, vous pouvez écrire un wrapper qui implémente Muxer
puis utilisez setMuxerFactory
pour l'injecter dans le transformateur.