Personnalisation

Pour contrôler le comportement du Transformer, vous pouvez configurer des options dans la surface de l'API ou remplacer complètement des éléments de fonctionnalité en écrivant des implémentations personnalisées d'interfaces et en les transmettant. Cette page décrit quelques exemples.

Contrôler la configuration du codec

Par défaut, Transformer reviendra à une résolution compatible si l'encodeur matériel de l'appareil n'accepte pas la résolution de sortie demandée. Par exemple, Transformer peut aligner la largeur et la hauteur de sortie sur un multiple de 2 ou de 16, comme l'exigent souvent les encodeurs matériels. Vous pouvez désactiver ce comportement pour que Transformer génère une erreur s'il ne peut pas produire la résolution de sortie requise :

Kotlin

transformerBuilder.setEncoderFactory(
  DefaultEncoderFactory.Builder(context).setEnableFallback(false).build()
)

Java

transformerBuilder.setEncoderFactory(
    new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());

De même, DefaultEncoderFactory permet également d'utiliser des paramètres d'encodage personnalisés avec l'option setRequestedVideoEncoderSettings.

Vous pouvez également remplacer complètement les usines d'encodeurs et de décodeurs pour contrôler entièrement la configuration des codecs.

Muxers personnalisés

Vous pouvez définir un muxer 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 l'interface Muxer, puis utiliser setMuxerFactory pour l'injecter dans Transformer.