トラブルシューティング


デモアプリでローカル ファイルにアクセスできないのはなぜですか?

対象範囲別ストレージの適用(Android 11 以降) (API レベル 30)は、ファイル システムへの直接アクセスを防止します。テスト期間中の手動テストでは ローカル ファイルにアクセスするには、外部ユーザーを追加する storage 権限を追加して、デモ用アプリ マニフェストに追加します。

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

次に、adb を介して権限を付与します。

adb shell appops set --uid androidx.media3.demo.transformer \
    MANAGE_EXTERNAL_STORAGE allow

特定のデバイスでエクスポートが失敗するのはなぜですか?

Media3 の問題に関してご報告ください。 十分な情報を含むトラッカー 必要があります。デバイス固有の問題に対する回避策を 継続的に改善されていきます。

Transformer はリモート メディアの変換(または録音)をサポートしていますか?

Transformer はメディア ファイル コンテナなどのリモート プログレッシブ ストリームをサポート 保存できます。

ネットワークが非常に不安定な場合、バッファリングによってエクスポートが失敗することがあります。 リモート・メディアが長すぎると、マルチプレクサのチェックをトリガーします。 パイプラインが停止していることを確認できますデフォルトの動作をオーバーライドするには、 Transformer.BuildermaxDelayBetweenMuxerSamplesMs を設定:

Kotlin

Transformer.Builder(context)
    .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET)
    .build()

Java

new Transformer.Builder(context)
    .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET)
    .build();

C.TIME_UNSET を渡すとタイムアウトは完全に削除されますが、アプリが MediaCodec が動作しなくなる可能性があるチップセットでは、より大きなゼロ以外の値を設定することをおすすめします。 あります。

<ph type="x-smartling-placeholder">

Transformer は 8K 入力をサポートしていますか?

Transformer は形式に依存しない方法で実装されるため、制限がない 8K 動画の扱いは難しいかもしれませんが、デバイスのハードウェア機能によって、 失敗しますたとえば、8K のキャプチャが可能なデバイスでも、 動画のデコードと再エンコードが ハードウェア コーデックまたは RAM リソースにのみ反映されます。

Transformer はプラットフォーム互換のメディアのコード変換とどのように関連していますか?

互換性のあるメディアのコード変換 は、Android 12(API レベル 31)の Android プラットフォーム機能で、 最大 1 分までのメディアを、アプリでサポートされている形式に変換できます。もし この機能の使用を有効にして、互換性のない形式のメディア ファイルを読み取る オンデマンドでコード変換され、後で読み取れるように結果がキャッシュに保存される 必要があります。

Transformer は コンバージョンですが、 サポート ライブラリとして使用でき、アプリの コード変換オペレーションです

エクスポートのレイテンシを短縮したり、スループットを向上させるにはどうすればよいですか?

Transformer は、ハードウェア アクセラレーテッド デコードに MediaCodec を使用します。 動画フレーム処理用の OpenGL が含まれますGoogle が Transformer のスループットを制限する要因は、ハードウェア 重量級効果のないユースケースでの MediaCodec エンコーダのスループット あります。これは、他の実装にも同様に影響する可能性があります。対象 プラットフォームと互換性のあるコード変換機能は、 Transformer です。

デモアプリのデバッグ プレビューを使用するとスループットが大幅に低下するため、 デモアプリのリリースビルドでテストする際のプレビュー機能を使用して、 現実的に考える必要があります。