Dostosowanie

Aby kontrolować zachowanie Transformera, możesz skonfigurować opcje w interfejsie API lub całkowicie zastąpić niektóre funkcje za pomocą niestandardowych implementacji. i przekazywania ich. Na tej stronie znajduje się kilka przykładów.

Sterowanie konfiguracją kodeka

Domyślnie Transformer przełączy się na obsługiwaną rozdzielczość, jeśli sprzętowy koder urządzenia nie akceptuje żądanej rozdzielczości wyjściowej. Dla: na przykład Transformer może wyrównać szerokość i wysokość danych wyjściowych, aby były wielokrotnością liczby 2 lub 16, co jest często wymagane przez kodery sprzętowe. Możesz wyłączyć tę funkcję tak aby Transformer zamiast tego zgłaszał błąd, jeśli nie może wygenerować wymaganego rozdzielczość wyjściowa:

Kotlin

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

Java

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

Podobnie, DefaultEncoderFactory obsługuje również niestandardowe kodowanie. za pomocą opcji setRequestedVideoEncoderSettings.

Możesz też wymienić fabryki koderów i dekoderów, pełną kontrolę nad konfiguracją kodeków.

Niestandardowe Muxery

Możesz ustawić niestandardowy multiplekser do zapisywania kontenerów multimediów przez wywołanie Transformer.setMuxerFactory Jeśli na przykład wdrożysz własny Muxer na stronie na poziomie aplikacji, możesz napisać kod, który zaimplementuje funkcję Muxer a potem użyj setMuxerFactory, by wstawić go do Transformera.