Personalización

Para controlar el comportamiento de Transformer, puedes configurar opciones en la plataforma de la API o reemplazar partes de la funcionalidad por completo escribiendo implementaciones personalizadas de interfaces y los pasamos. En esta página, se describen algunos ejemplos.

Controla la configuración de códecs

De forma predeterminada, Transformer utilizará una resolución compatible si la El codificador de hardware del dispositivo no acepta la resolución de salida solicitada. Para ejemplo, Transformer puede alinear el ancho y la altura del resultado para que sean múltiplos de 2. o 16 como lo suelen requerir los codificadores de hardware. Puedes desactivar este comportamiento por lo que Transformer arroja un error si no puede producir resolución de salida:

Kotlin

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

Java

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

Del mismo modo, DefaultEncoderFactory también admite el uso de la codificación personalizada. con la opción setRequestedVideoEncoderSettings.

También puedes reemplazar completamente las fábricas para que los codificadores y decodificadores control total sobre la configuración de los códecs.

Mezcladores personalizados

Puedes configurar un combinador personalizado para escribir contenedores de medios llamando Transformer.setMuxerFactory Por ejemplo, si implementas tu propio combinador en a nivel de la aplicación, puedes escribir un wrapper que implemente el Muxer y, luego, usa setMuxerFactory para insertarla en Transformer.