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.