Anpassung

Zur Steuerung des Verhaltens von Transformer können Sie Optionen in der API-Oberfläche konfigurieren oder Funktionen vollständig ersetzen, indem Sie benutzerdefinierte Implementierungen schreiben und übergeben diese. Auf dieser Seite werden einige Beispiele beschrieben.

Codec-Konfiguration steuern

Standardmäßig greift Transformer auf eine unterstützte Auflösung zurück, wenn das Der Hardware-Encoder des Geräts akzeptiert die angeforderte Auflösung nicht. Für kann der Transformer die Breite und Höhe der Ausgabe auf ein Vielfaches von 2 ausrichten. oder 16, wie es von Hardware-Encodern häufig verlangt wird. Sie können dieses Verhalten deaktivieren, sodass Transformer stattdessen einen Fehler ausgibt, wenn die erforderliche Ausgabeauflösung:

Kotlin

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

Java

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

Ebenso unterstützt das DefaultEncoderFactory auch die Verwendung einer benutzerdefinierten Codierung mit der Option setRequestedVideoEncoderSettings.

Encoder und Decoder können auch komplett ersetzt werden, wie die Codecs eingerichtet sind.

Benutzerdefinierte Muxer

Sie können einen benutzerdefinierten Muxer zum Schreiben von Mediencontainern festlegen, indem Sie folgenden Befehl aufrufen: Transformer.setMuxerFactory Wenn Sie z. B. Ihren eigenen Muxer unter Anwendungsebene haben, können Sie einen Wrapper schreiben, der die Muxer implementiert. und dann setMuxerFactory, um sie in Transformer einzufügen.