Risoluzione dei problemi


Perché non riesco ad accedere ai file locali nell'app demo?

Applicazione dello spazio di archiviazione con ambito da Android 11 (livello API 30) impedisce l'accesso diretto al file system. Per i test manuali durante puoi accedere ai file locali aggiungendo il comando esterno di gestione autorizzazione di archiviazione nel file manifest dell'app demo:

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

Quindi concedi l'autorizzazione tramite adb:

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

Perché l'esportazione non riesce su un dispositivo specifico?

Segnala un problema relativo al problema Media3 tracker con informazioni sufficienti per riprodurre il problema. È possibile aggiungere soluzioni alternative per problemi specifici del dispositivo libreria per migliorare la compatibilità nel tempo.

Transformer supporta la trasformazione (o la registrazione) di contenuti multimediali remoti?

Transformer supporta gli stream progressivi remoti, inclusi i container di file multimediali come MP4.

In condizioni di rete molto cattive, l'esportazione potrebbe non riuscire a causa del buffering un supporto remoto per troppo tempo attiva i controlli nel muxer allo scopo di identificare che la pipeline è bloccata. Puoi ignorare il comportamento predefinito impostazione maxDelayBetweenMuxerSamplesMs su Transformer.Builder:

Kotlin

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

Java

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

Se superi la soglia di C.TIME_UNSET, il timeout viene rimosso completamente, ma se l'app viene eseguita il giorno in cui MediaCodec può bloccarsi, potresti voler impostare un valore più grande diverso da zero timeout.

Transformer supporta l'input 8K?

Transformer è implementato in modo indipendente dal formato, quindi non limita dei video in 8K, ma le funzionalità hardware del dispositivo potrebbero indicare che e l'esportazione non è riuscita. Ad esempio, anche sui dispositivi in grado di acquisire 8K, potrebbe non essere possibile decodificare e ricodificare un video 8K a causa del superamento le risorse RAM o il codec hardware disponibili.

Qual è la relazione tra Transformer e la transcodifica multimediale compatibile con la piattaforma?

Transcodifica multimediale compatibile è una funzionalità della piattaforma Android di Android 12 (livello API 31) che converte fino a un minuto di durata nei formati supportati dall'app. Se attivare l'utilizzo di questa funzionalità, leggere un file multimediale in un formato non compatibile ne comporta la transcodifica on demand e il risultato viene memorizzato nella cache per essere letto in un secondo momento operazioni.

Transformer supporta anche il formato conversione, è disponibile come libreria di supporto e l'app ha il controllo completo dell'operazione di transcodifica.

Come faccio a ridurre la latenza dell'esportazione o aumentare la velocità effettiva?

Transformer si affida a MediaCodec per la decodifica con accelerazione hardware e e OpenGL per l'elaborazione dei fotogrammi video. In base alle nostre misurazioni effettuate su dispositivi tipici, il fattore limitante della velocità effettiva di Transformer è l'hardware Velocità effettiva del codificatore MediaCodec per casi d'uso senza effetti intensivi e l'elaborazione dei dati. È probabile che questo influisca nello stesso modo su altre implementazioni. Per Ad esempio, la funzione di transcodifica compatibile con la piattaforma ha prestazioni simili Transformer.

L'anteprima di debug dell'app demo riduce notevolmente la velocità effettiva, quindi disattiva funzionalità in anteprima durante il test con una build di release dell'app demo per ottenere un un'idea realistica del rendimento.