Настройка

Чтобы управлять поведением Transformer, вы можете настроить параметры в интерфейсе API или полностью заменить части функциональности, написав собственные реализации интерфейсов и передав их. На этой странице описаны некоторые примеры.

Конфигурация управляющего кодека

По умолчанию Transformer возвращается к поддерживаемому разрешению, если аппаратный кодер устройства не принимает запрошенное выходное разрешение. Например, Transformer может выровнять выходную ширину и высоту так, чтобы она была кратна 2 или 16, как это часто требуется для аппаратных кодировщиков. Вы можете отключить это поведение, чтобы Transformer вместо этого выдавал ошибку, если он не может обеспечить необходимое выходное разрешение:

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

Аналогичным образом, DefaultEncoderFactory также поддерживает использование пользовательских настроек кодирования с помощью параметра setRequestedVideoEncoderSettings .

Вы также можете полностью заменить фабрики кодеров и декодеров, чтобы получить полный контроль над настройкой кодеков.

Пользовательские мультиплексоры

Вы можете установить собственный мультиплексор для записи медиаконтейнеров, вызвав Transformer.setMuxerFactory . Например, если вы реализуете свой собственный мультиплексор на уровне приложения, вы можете написать оболочку, реализующую интерфейс Muxer , а затем использовать setMuxerFactory для внедрения его в Transformer.