Настройка

Чтобы управлять поведением 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.