Soluciona problemas


¿Por qué no puedo acceder a los archivos locales en la app de demo?

Aplicación del almacenamiento específico de Android 11 (nivel de API 30) impide el acceso directo al sistema de archivos. Para las pruebas manuales durante desarrollo, es posible acceder a archivos locales agregando el permiso permiso de almacenamiento en el manifiesto de la app de demostración:

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

Luego, otorga el permiso mediante adb:

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

¿Por qué falla la exportación en un dispositivo específico?

Informa sobre el problema de Media3. dispositivo de rastreo con suficiente información para reproducir el problema. Puedes agregar soluciones a problemas específicos del dispositivo en la biblioteca para mejorar la compatibilidad con el tiempo.

¿Transformer es compatible con la transformación (o grabación) de medios remotos?

Transformer admite transmisiones progresivas remotas, incluidos contenedores de archivos multimedia como MP4.

En condiciones de red deficientes, la exportación puede fallar debido al almacenamiento en búfer elementos multimedia remotos durante demasiado tiempo activa verificaciones en el combinador que tienen como objetivo identificar que la canalización está atascada. Puedes anular el comportamiento predeterminado Configurando maxDelayBetweenMuxerSamplesMs en Transformer.Builder:

Kotlin

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

Java

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

Si pasas C.TIME_UNSET, se quita el tiempo de espera por completo, pero si tu app se ejecuta en de chipsets en los que MediaCodec puede bloquearse, puedes establecer un valor más grande distinto de cero tiempo de espera.

¿Transformer admite entradas de 8K?

Transformer se implementa de forma independiente del formato, por lo que no se limita video 8K, pero las capacidades del hardware del dispositivo pueden significar que la exportación no puede realizarse. Por ejemplo, incluso en dispositivos que pueden capturar 8K, tal vez no sea posible decodificar y volver a codificar un video 8K debido al exceso de el códec de hardware o los recursos de RAM disponibles.

¿Cómo se relaciona Transformer con la transcodificación de contenido multimedia compatible con la plataforma?

Transcodificación de contenido multimedia compatible es una función de la plataforma de Android de Android 12 (nivel de API 31) que convierte de hasta un minuto de duración en formatos compatibles con la aplicación. Si aceptar el uso de esta función, leer un archivo multimedia en un formato incompatible Hace que se transcodifique a pedido y el resultado se almacena en caché para su posterior lectura. las operaciones.

Transformer también admite format conversiones, pero está disponible como una biblioteca de compatibilidad y la app tiene control total sobre el una operación de transcodificación.

¿Cómo puedo reducir la latencia de exportación o aumentar la capacidad de procesamiento?

Transformer se basa en MediaCodec para la decodificación acelerada por hardware y codificación de imágenes, y OpenGL para procesar fotogramas de video. Según nuestras mediciones sobre dispositivos típicos, el factor limitante en la capacidad de procesamiento de Transformer es el hardware Capacidad de procesamiento del codificador MediaCodec para casos de uso sin efectos pesados el procesamiento de datos. Es probable que esto afecte de la misma manera a otras implementaciones. Para Por ejemplo, la función de transcodificación compatible con la plataforma tiene un rendimiento similar al Transformador

La vista previa de depuración de la aplicación de demostración reduce la capacidad de procesamiento de forma significativa, por lo que debes desactivar la Preview cuando realices pruebas con una compilación de lanzamiento de la app de demostración para obtener una una idea realista de rendimiento.