Para controlar o comportamento do Transformer, configure opções na superfície da API ou substitua completamente partes da funcionalidade escrevendo implementações personalizadas de interfaces e transmitindo-as. Nesta página, descrevemos alguns exemplos.
Controlar a configuração do codec
Por padrão, o Transformer vai usar uma resolução compatível se o codificador de hardware do dispositivo não aceitar a resolução de saída solicitada. Por exemplo, o Transformer pode alinhar a largura e a altura da saída para serem um múltiplo de 2 ou 16, como geralmente é exigido pelos codificadores de hardware. É possível desativar esse comportamento para que o Transformer gere um erro se não conseguir produzir a resolução de saída necessária:
Kotlin
transformerBuilder.setEncoderFactory( DefaultEncoderFactory.Builder(context).setEnableFallback(false).build() )
Java
transformerBuilder.setEncoderFactory( new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());
Da mesma forma, o DefaultEncoderFactory também aceita o uso de configurações de codificação personalizadas com a opção setRequestedVideoEncoderSettings.
Você também pode substituir completamente as fábricas de codificadores e decodificadores para ter controle total sobre como os codecs são configurados.
Multiplexadores personalizados
Você pode definir um muxer personalizado para gravar contêineres de mídia chamando
Transformer.setMuxerFactory. Por exemplo, se você implementar seu próprio muxer no nível do aplicativo, poderá escrever um wrapper que implemente a interface Muxer e usar setMuxerFactory para injetá-lo no Transformer.