- Pourquoi ne puis-je pas accéder aux fichiers locaux dans l'application de démonstration ?
- Pourquoi l'exportation échoue-t-elle sur un appareil spécifique ?
- Transformer permet-il de transformer (ou d'enregistrer) des contenus multimédias à distance ?
- Le transformateur est-il compatible avec les entrées 8K ?
- Quel est le rapport entre Transformer et le transcodage de contenus multimédias compatibles avec la plate-forme ?
- Comment réduire la latence d'exportation ou augmenter le débit ?
Pourquoi ne puis-je pas accéder aux fichiers locaux dans l'application de démonstration ?
L'application de l'espace de stockage cloisonné à partir d'Android 11 (niveau d'API 30) empêche l'accès direct au système de fichiers. Pour les tests manuels pendant le développement, il est possible d'accéder aux fichiers locaux en ajoutant l'autorisation de gérer le stockage externe dans le fichier manifeste de l'application de démonstration :
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
Accordez ensuite l'autorisation via adb :
adb shell appops set --uid androidx.media3.demo.transformer \
MANAGE_EXTERNAL_STORAGE allow
Pourquoi l'exportation échoue-t-elle sur un appareil spécifique ?
Veuillez signaler le problème dans l'outil de suivi des problèmes Media3 en fournissant suffisamment d'informations pour le reproduire. Des solutions de contournement pour les problèmes spécifiques aux appareils peuvent être ajoutées à la bibliothèque pour améliorer la compatibilité au fil du temps.
Transformer permet-il de transformer (ou d'enregistrer) des contenus multimédias à distance ?
Transformer est compatible avec les flux progressifs à distance, y compris les conteneurs de fichiers multimédias tels que MP4.
Dans de très mauvaises conditions réseau, l'exportation peut échouer, car la mise en mémoire tampon de contenus multimédias distants pendant une durée trop longue déclenche des vérifications dans le muxer, qui sont destinées à identifier que le pipeline est bloqué. Vous pouvez remplacer le comportement par défaut en définissant maxDelayBetweenMuxerSamplesMs sur Transformer.Builder :
Kotlin
Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build()
Java
new Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build();
Si vous transmettez C.TIME_UNSET, le délai d'attente est entièrement supprimé. Toutefois, si votre application s'exécute sur des chipsets où MediaCodec peut se bloquer, vous pouvez définir un délai d'attente non nul plus long.
Transformer est-il compatible avec les entrées 8k ?
Le Transformer est implémenté de manière indépendante du format. Il ne limite donc pas le traitement des vidéos 8K, mais les capacités matérielles de l'appareil peuvent empêcher l'exportation. Par exemple, même sur les appareils capables de capturer des vidéos en 8K, il peut être impossible de décoder et de réencoder une vidéo en 8K en raison du dépassement des ressources disponibles en termes de codec matériel ou de RAM.
Quel est le rapport entre Transformer et le transcodage de contenus multimédias compatibles avec la plate-forme ?
La transcodage multimédia compatible est une fonctionnalité de la plate-forme Android à partir d'Android 12 (niveau d'API 31) qui convertit les contenus multimédias d'une durée maximale d'une minute dans des formats compatibles avec l'application. Si vous choisissez d'utiliser cette fonctionnalité, la lecture d'un fichier multimédia dans un format incompatible entraîne son transcodage à la demande, et le résultat est mis en cache pour les opérations de lecture ultérieures.
Transformer est également compatible avec la conversion de format, mais il est disponible en tant que bibliothèque d'assistance et l'application contrôle entièrement l'opération de transcodage.
Comment réduire la latence d'exportation ou augmenter le débit ?
Transformer s'appuie sur MediaCodec pour le décodage et l'encodage avec accélération matérielle, et sur OpenGL pour le traitement des images vidéo. D'après nos mesures sur des appareils classiques, le facteur limitant du débit du Transformer est le débit de l'encodeur MediaCodec pour les cas d'utilisation sans traitement d'effets lourds. Il est probable que cela ait le même impact sur les autres implémentations. Par exemple, la fonctionnalité de transcodage compatible avec la plate-forme offre des performances similaires à celles de Transformer.
L'aperçu de débogage de l'application de démonstration réduit considérablement le débit. Désactivez donc la fonctionnalité d'aperçu lorsque vous effectuez des tests avec une version Release de l'application de démonstration pour obtenir une idée réaliste des performances.