カスタマイズ

Transformer の動作を制御するには、API サーフェスでオプションを構成します。 または、カスタム実装を記述して機能の一部を完全に置き換えます。 渡すだけではありませんこのページでは、いくつかの例について説明します。

コーデックの設定を制御する

デフォルトでは、Transformer は、 デバイスのハードウェア エンコーダが、要求された出力解像度を受け入れません。対象 たとえば、出力の幅と高さが 2 の倍数になるように調整できます。 16 に設定することもできます。この動作はオフにできます。 必要な変換を生成できない場合、Transformer は代わりにエラーをスローするようにします。 出力解像度:

Kotlin

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

Java

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

同様に、DefaultEncoderFactory はカスタム エンコードの使用もサポートしています。 setRequestedVideoEncoderSettings オプションを使用します。

また、エンコーダとデコーダのファクトリを完全に置き換えて、 コーデックの設定方法を完全に制御できます。

カスタム マルチプレクサ

次の呼び出しによって、メディア コンテナを書き込むためのカスタム マルチプレクサを設定できます。 Transformer.setMuxerFactory。たとえば、独自のマルチプレクサを アプリレベルでは、Muxer を実装するラッパーを記述し、 setMuxerFactory を使用して Transformer に挿入します。