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.