Ce document décrit la compatibilité du codec multimédia, du conteneur et du protocole réseau fourni par la plate-forme Android.
Les tableaux ci-dessous décrivent les formats multimédias intégrés à la plate-forme Android. "OUI" signifie que le format est disponible sur les appareils portables et les tablettes équipés de toutes les versions d'Android. Lorsqu'une plate-forme Android spécifique est spécifiée, le format est disponible sur les téléphones et les tablettes exécutant cette version et toutes les versions ultérieures. Le format peut également être disponible dans des versions antérieures, mais cela n'est pas garanti. Pour les facteurs de forme autres que les téléphones et les tablettes, la compatibilité des formats multimédias peut varier.
Notez qu'un appareil mobile particulier peut prendre en charge des formats ou types de fichiers supplémentaires qui ne sont pas répertoriés dans ces tableaux. De plus, si vous utilisez directement un MediaCodec, vous pouvez accéder à tous les formats multimédias disponibles, quels que soient les types de fichiers et les formats de conteneurs compatibles.
Compatibilité audio
Format | Encodeur | Décodeur | Détails | Types de fichiers Formats de conteneurs |
---|---|---|---|---|
AAC LC | OUI | OUI | Prise en charge du contenu mono/stéréo/5.0/5.1 avec des taux d'échantillonnage standards de 8 à 48 kHz. |
• 3GPP (.3gp) • ADTS RAW AAC (.aac, décodage pour Android 3.1 ou version ultérieure, encodage sur Android 4.0 ou version ultérieure, ADIF non compatible) • MPEG-TS (.ts, non accessible, Android 3.0 ou version ultérieure) |
HE-AACv1 (AAC+) | Android 4.1 ou version ultérieure | OUI | ||
HE-AACv2 (AAC+ amélioré) | OUI | Prise en charge du contenu stéréo/5.0/5.1 avec des taux d'échantillonnage standards de 8 à 48 kHz. | ||
xHE-AAC | Android 9 ou version ultérieure | Prise en charge du contenu 8 ch avec des taux d'échantillonnage standards de 8 à 48 kHz | ||
AAC ELD (AAC amélioré à faible délai) | Android 4.1 ou version ultérieure | Android 4.1 ou version ultérieure | Prise en charge du contenu mono/stéréo avec des taux d'échantillonnage standards de 16 à 48 kHz. | |
AMR-NB | OUI | OUI | 4,75 à 12,2 kbit/s échantillonnés à 8 kHz |
• 3GPP (.3gp) • AMR (.amr) |
AMR-WB | OUI | OUI | 9 débits entre 6,60 kbit/s et 23,85 kbit/s échantillonnés à 16 kHz | |
FLAC | Android 4.1 ou version ultérieure | Android 3.1 ou version ultérieure | Mono/Stéréo (pas de multicanal) Taux d'échantillonnage allant jusqu'à 48 kHz (mais jusqu'à 44,1 kHz recommandé sur les appareils avec 44,1 kHz en sortie, car le sous-échantillonneur de 48 à 44,1 kHz n'inclut pas de filtre passe-bas). 16 bits recommandé ; aucun tramage appliqué pour 24 bits. |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 ou version ultérieure) |
MIDI | OUI | MIDI de types 0 et 1 DLS versions 1 et 2. XMF et Mobile XMF. Compatibilité avec les formats de sonnerie RTTTL/RTX, OTA et iMelody |
• Type 0 et 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
|
MP3 | OUI | Constante mono/stéréo 8-320 kbit/s (CBR) ou débit variable (VBR) |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 ou version ultérieure) • Matroska (.mkv, Android 10 ou version ultérieure) |
|
Opus | Android 10 ou version ultérieure | Android 5.0 ou version ultérieure |
• Ogg (.ogg) • Matroska (.mkv) |
|
PCM/WAVE | Android 4.1 ou version ultérieure | OUI | PCM linéaire 8 et 16 bits (débits sous la limite du matériel). Taux d'échantillonnage pour les enregistrements PCM bruts à 8 000, 16 000 et 44 100 Hz. | WAVE (.wav) |
Vorbis | OUI |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0 ou version ultérieure) • MPEG-4 (.mp4, .m4a, Android 10 ou version ultérieure) |
Compatibilité vidéo
Formats vidéo
Format | Encodeur | Décodeur | Détails | Types de fichiers Formats de conteneurs |
---|---|---|---|---|
H.263 | OUI | OUI | La prise en charge de H.263 est facultative sur Android 7.0 et versions ultérieures. |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
H.264 AVC Profil de référence (BP) |
Android 3.0 ou version ultérieure | OUI |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, audio AAC uniquement, recherche impossible, Android 3.0 ou version ultérieure) • Matroska (.mkv) |
|
H.264 AVC Profil principal (Mpx) |
Android 6.0 et versions supérieures | OUI | Le décodeur est requis, et l'encodeur est recommandé. | |
H.265 HEVC | Android 5.0 ou version ultérieure | Profil principal de niveau 3 pour les appareils mobiles et niveau 4.1 du profil principal pour Android TV |
• MPEG-4 (.mp4) • Matroska (.mkv) |
|
MPEG-4 SP | OUI | 3GPP (0,3GP) | ||
V8 | Android 4.3 ou version ultérieure | Android 2.3.3 et versions ultérieures | Disponible en streaming uniquement sur Android 4.0 ou version ultérieure |
• WebM (.webm) • Matroska (.mkv, Android 4.0 ou version ultérieure) |
VP9 | Android 4.4 ou version ultérieure |
• WebM (.webm) • Matroska (.mkv) |
||
AV1 | Android 14 ou version ultérieure | Android 10 ou version ultérieure | L'encodeur et le décodeur sont obligatoires à partir d'Android 14. |
• MPEG-4 (.mp4) • Matroska (.mkv) |
Recommandations concernant l'encodage vidéo
Le tableau ci-dessous présente les profils et paramètres d'encodage vidéo du framework multimédia Android recommandés pour la lecture à l'aide du codec de profil de référence H.264. Les mêmes recommandations s'appliquent au codec de profil principal, qui n'est disponible qu'à partir de la version 6.0 d'Android.
SD (basse qualité) | SD (haute qualité) | HD 720p (N/A sur tous les appareils) | |
---|---|---|---|
Résolution vidéo | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
Fréquence d'images de la vidéo | 12 FPS | 30 ips | 30 ips |
Débit vidéo | 56 kbit/s | 500 Kbit/s | 2 Mbit/s |
Codec audio | AAC-LC | AAC-LC | AAC-LC |
Chaînes audio | 1 (mono) | 2 (stéréo) | 2 (stéréo) |
Débit audio | 24 kbit/s | 128 Kbits/s | 192 kbit/s |
Le tableau ci-dessous présente les profils et paramètres d'encodage vidéo du framework multimédia Android recommandés pour la lecture à l'aide du codec multimédia VP8.
SD (basse qualité) | SD (haute qualité) | HD 720p (N/A sur tous les appareils) | HD 1080p (N/A sur tous les appareils) | |
---|---|---|---|---|
Résolution vidéo | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 px |
Fréquence d'images de la vidéo | 30 ips | 30 ips | 30 ips | 30 ips |
Débit vidéo | 800 Kbit/s | 2 Mbit/s | 4 Mbit/s | 10 Mbit/s |
Recommandations concernant le décodage vidéo
Les implémentations d'appareils doivent prendre en charge le basculement dynamique de résolution vidéo et de fréquence d'images via les API Android standards dans le même flux pour tous les codecs VP8, VP9, H.264 et H.265, en temps réel et jusqu'à la résolution maximale acceptée par chaque codec de l'appareil.
Les implémentations compatibles avec le décodeur Dolby Vision doivent respecter les consignes suivantes:
- Fournissez un extracteur compatible Dolby Vision.
- Afficher correctement le contenu Dolby Vision sur l'écran de l'appareil ou sur un port de sortie vidéo standard (par exemple, HDMI).
- Définissez l'index de suivi des couches de base rétrocompatibles (le cas échéant) de sorte qu'il soit identique à l'index de suivi de la couche Dolby Vision combinée.
Exigences concernant le streaming vidéo
Pour le contenu vidéo diffusé en streaming via HTTP ou RTSP, des exigences supplémentaires s'appliquent:
- Pour les conteneurs 3GPP et MPEG-4, l'atome
moov
doit précéder tous les atomesmdat
, mais doit succéder à l'atomeftyp
. - Pour les conteneurs 3GPP, MPEG-4 et WebM, les échantillons audio et vidéo correspondant au même décalage temporel ne doivent pas dépasser 500 Ko. Pour réduire cette dérive audio/vidéo, envisagez d'entrelacer l'audio et la vidéo avec des fragments de plus petite taille.
Compatibilité avec les images
Format | Encodeur | Décodeur | Détails | Types de fichiers Formats de conteneurs |
---|---|---|---|---|
BMP | OUI | BMP (.bmp) | ||
GIF | OUI | GIF (.gif) | ||
JPEG | OUI | OUI | Standard + progressive | JPEG (.jpg) |
PNG | OUI | OUI | PNG (.png) | |
WebP |
Android 4.0 ou version ultérieure Sans perte: Android 10 ou version ultérieure Transparence: Android 4.2.1 ou version ultérieure |
Android 4.0 ou version ultérieure Sans perte: Android 4.2.1 ou version ultérieure Transparence: Android 4.2.1 ou version ultérieure |
L'encodage sans perte peut être obtenu sur Android 10 avec une qualité de 100. | WebP (.webp) |
HEIF | Android 8.0 ou version ultérieure | HEIF (.heic; .heif) | ||
AVIF (profil de référence) | Android 14 ou version ultérieure | Android 14 ou version ultérieure | L'encodeur et le décodeur sont obligatoires à partir d'Android 14. | AVIF (.avif) |
Protocoles réseau
Les protocoles réseau suivants sont compatibles avec la lecture audio et vidéo:
- RTSP (RTP, SDP)
- Streaming progressif HTTP/HTTPS
- Brouillon de protocole pour le streaming en direct HTTP/HTTPS:
- Fichiers multimédias MPEG-2 TS uniquement
- Protocole version 3 Android 4.0 ou version ultérieure
- Protocole version 2 Android 3.x
- Non compatible avec les versions antérieures à Android 3.0
Remarque:HTTPS n'est pas compatible avec les versions antérieures d'Android 3.1.
Formats vidéo HDR
Les OEM peuvent activer le format HDR de leur choix avec l'architecture HDR d'Android, qui répond aux principaux besoins des formats HDR: tampons 10 bits, métadonnées (statiques, dynamiques et non), fonction de transfert et gestion de l'espace colorimétrique.
Pour assurer la cohérence pour les développeurs et répondre aux principaux cas d'utilisation de la technologie HDR, nous demandons aux OEM d'accepter quelques formats de base sur les appareils compatibles:
- Pour une lecture de contenu professionnelle, comme des films en streaming, la technologie HDR10 est requise.
- Pour la capture et la lecture de contenu généré par l'utilisateur, nous exigeons que le protocole HLG10 offre une expérience cohérente sur tous les appareils Android.
Les OEM qui ajoutent la compatibilité HDR doivent accepter ces formats, mais peuvent également accepter des formats supplémentaires tels que HDR10+ ou Dolby Vision.
Format | Fonction de transfert | Metadata | Codec | Profondeur de bit |
---|---|---|---|---|
HLG10 | HLG | Non | HVEC | 10 bits |
HDR10 | QP | Statique | HVEC | 10 bits |
HDR10+ | QP | Statique | HVEC | 10 bits |
Dolby Vision 8.4 | HLG | Dynamique | HVEC | 10 bits |
Recommandations concernant la gestion des formats
Format de capture | Format d'importation | Format de diffusion |
HLG | Compatibilité du backend d'application avec HDR HLG | Appareils compatibles avec la technologie HDR (HLG):
HLG Les appareils sont compatibles avec la technologie HDR (la technologie HLG n'est pas compatible uniquement avec PQ): SDR (mappage de tons de HLG à SDR dans le backend) Appareils non compatibles avec la technologie HDR: SDR (mappage de tons de HLG à SDR dans le backend) |
Cas d'utilisation 2: capture d'écran native ou importation à partir de la galerie de l'utilisateur (le backend de l'application est compatible avec la technologie HDR)
Format de capture | Format d'importation | Format de diffusion |
HLG | HLG | Identique au cas d'utilisation pour la capture dans l'application |
HDR10+ | HLG
Mappage de tons HDR10+ (PQ) vers HLG avant l'importation à l'aide des API Transformer |
Identique au cas d'utilisation pour la capture dans l'application |
DV8.4 | HLG
(DV8.4 utilise HLG et les flux de bits se comportent comme HLG, ce qui signifie qu'aucun mappage de tons n'est requis.) |
Identique au cas d'utilisation pour la capture dans l'application |
Cas d'utilisation 3: le backend de l'application n'est pas compatible avec la technologie HDR
Format de capture | Format d'importation | Format de diffusion |
Tous les formats | SDR
Cartographie des tons de HLG vers SDR avant l'importation à l'aide des API Transformer |
SDR |