Personnalisation

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.