- Por que não consigo acessar arquivos locais no app de demonstração?
- Por que a exportação falha em um dispositivo específico?
- O transformador oferece suporte à transformação ou gravação de mídia remota?
- O transformador oferece suporte à entrada de 8k?
- Qual é a relação entre o Transformer e a transcodificação de mídia compatível com a plataforma?
- Como posso reduzir a latência de exportação ou aumentar a capacidade de processamento?
Por que não consigo acessar arquivos locais no app de demonstração?
Aplicação do armazenamento com escopo no Android 11 O nível 30 da API impede o acesso direto ao sistema de arquivos. Para testes manuais durante é possível acessar arquivos locais adicionando o recurso de gerenciamento de armazenamento no manifesto do app de demonstração:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
Em seguida, conceda a permissão via adb:
adb shell appops set --uid androidx.media3.demo.transformer \ MANAGE_EXTERNAL_STORAGE allow
Por que a exportação falha em um dispositivo específico?
Informe o problema no problema da Media3 rastreador com informações suficientes para reproduzir o problema. Alternativas para problemas específicos do dispositivo podem ser adicionadas a biblioteca para melhorar a compatibilidade ao longo do tempo.
O transformador oferece suporte à transformação ou gravação de mídia remota?
O Transformer oferece suporte a streams progressivos remotos, incluindo contêineres de arquivos de mídia como MP4.
Em condições de rede muito ruins, a exportação pode falhar porque o armazenamento em buffer
mídia remota por gatilhos muito longos, verificações no multiplexador destinadas a
identificar que o pipeline está travado. É possível modificar o comportamento padrão
Configurando maxDelayBetweenMuxerSamplesMs
em Transformer.Builder
:
Kotlin
Transformer.Builder(context) .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET) .build()
Java
new Transformer.Builder(context) .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET) .build();
Transmitir C.TIME_UNSET
remove totalmente o tempo limite, mas, se o app for executado
chipsets em que MediaCodec
pode ficar travado, é recomendável definir um valor diferente de zero
tempo limite.
O transformador oferece suporte à entrada de 8k?
O Transformer é implementado de forma independente de formato, para que não limite processamento de vídeo em 8K, mas as capacidades de hardware do dispositivo podem significar que a exportação não vai funcionar. Por exemplo, mesmo em dispositivos que podem capturar 8K, talvez não seja possível decodificar e recodificar um vídeo em 8K devido codec de hardware ou recursos de RAM disponíveis.
Qual é a relação entre o Transformer e a transcodificação de mídia compatível com a plataforma?
Transcodificação de mídia compatível é um recurso da Plataforma Android 12 (nível 31 da API) que converte mídia com até um minuto de duração em formatos compatíveis com o aplicativo. Se você ativar o uso desse recurso, lendo um arquivo de mídia em um formato incompatível faz com que ele seja transcodificado sob demanda e o resultado é armazenado em cache para leitura posterior as operações.
O Transformer também aceita formatações conversão, mas ele está disponível como uma biblioteca de suporte e o aplicativo tem controle total sobre a uma operação de transcodificação.
Como posso reduzir a latência de exportação ou aumentar a capacidade de processamento?
O Transformer depende do MediaCodec
para decodificação acelerada por hardware e
e OpenGL para processar frames de vídeo. Com base em nossas medições de
dispositivos comuns, o fator limitante da capacidade de processamento do Transformer é
MediaCodec
de capacidade de processamento do codificador para casos de uso sem efeitos pesados
processamento. É provável que isso afete outras implementações da mesma forma. Para
exemplo, o recurso de transcodificação compatível com a plataforma tem desempenho semelhante
transformador.
A visualização de depuração do app de demonstração reduz significativamente a capacidade de processamento, portanto, desative o em fase de testes ao testar com um build de lançamento do app de demonstração para uma ideia realista de desempenho.