Ce document décrit la prise en charge du codec multimédia, du conteneur et du protocole réseau fournie par la plate-forme Android.
Les tableaux ci-dessous décrivent la compatibilité des formats multimédias intégrée à la plate-forme Android. "OUI" signifie que le format est disponible sur les appareils portables et les tablettes exécutant 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 les versions antérieures, mais ce n'est pas garanti. La prise en charge des formats multimédias peut varier pour les facteurs de forme autres que les téléphones et les tablettes.
Notez qu'un appareil mobile particulier peut prendre en charge des formats ou des types de fichiers supplémentaires qui ne figurent pas dans ces tableaux. De plus, si vous utilisez directement un MediaCodec, vous pouvez accéder à n'importe quel format multimédia disponible, quels que soient les types de fichiers et les formats de conteneur compatibles.
Compatibilité audio
Format | Encodeur | Décodeur | Formats de conteneurs de types de fichiers | Détails | |
---|---|---|---|---|---|
Extracteur | Muxeur | ||||
AAC LC | OUI | OUI |
• 3GPP (.3gp) • AAC brut ADTS (.aac, ADIF non compatible) • MPEG-TS (.ts, non accessible, Android 3.0 ou version ultérieure) |
• 3GPP (.3gp) • AAC brut ADTS (.aac, ADIF non compatible) • MPEG-TS (pas sûr) (.ts, non accessible, Android 3.0 ou version ultérieure) |
Compatibilité avec les contenus mono/stéréo/5.0/5.1 avec des taux d'échantillonnage standards de 8 à 48 kHz. |
HE-AACv1 (AAC+) | Android 4.1 ou version ultérieure | OUI | |||
HE-AACv2 (AAC+ amélioré) | OUI | Compatibilité avec le contenu stéréo/5.0/5.1 avec des taux d'échantillonnage standards de 8 à 48 kHz. | |||
xHE-AAC | Android 9 et versions ultérieures | Compatibilité avec les contenus à 8 canaux avec des taux d'échantillonnage standards de 8 à 48 kHz | |||
AAC ELD (AAC à faible latence amélioré) | Android 4.1 ou version ultérieure | Android 4.1 ou version ultérieure | Compatibilité avec le contenu mono/stéréo avec des taux d'échantillonnage standards de 16 à 48 kHz | ||
AMR-NB | OUI | OUI |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
4,75 à 12,2 kbit/s échantillonnés à 8 kHz |
AMR-WB | OUI | OUI | 9 débits de 6,60 kbit/s à 23,85 kbit/s échantillonnés à 16 kHz | ||
FLAC | Android 4.1 ou version ultérieure | Android 3.1 ou version ultérieure |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 ou version ultérieure) • Matroska (.mkv) |
Mono/Stéréo (pas de multicanaux) Taux d'échantillonnage jusqu'à 48 kHz (mais jusqu'à 44,1 kHz est recommandé sur les appareils avec sortie 44,1 kHz, car le convertisseur 48 kHz vers 44,1 kHz n'inclut pas de filtre passe-bas). 16 bits recommandés ; aucun dither appliqué pour 24 bits. | |
MIDI | OUI |
• Type 0 et 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
Types MIDI 0 et 1 Versions 1 et 2 de DLS XMF et Mobile XMF. Compatibilité avec les formats de sonnerie RTTTL/RTX, OTA et iMelody | ||
MP3 | OUI |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 et versions ultérieures) • Matroska (.mkv, Android 10 et versions ultérieures) |
Mono/Stéréo 8-320 kbit/s CBR (débit constant) ou VBR (débit variable) | ||
Opus | Android 10 ou version ultérieure | Android 5.0 ou version ultérieure |
• Ogg (.ogg) • MPEG-4 (.mp4) • Matroska (.mkv) |
• Ogg (.ogg) • WebM (.webm) |
|
PCM/WAVE | Android 4.1 ou version ultérieure | OUI | WAVE (.wav) | PCM linéaire 8 et 16 bits (débits jusqu'à la limite du matériel). Taux d'échantillonnage pour les enregistrements PCM bruts à 8 000, 16 000 et 44 100 Hz. | |
Vorbis | OUI |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0 ou version ultérieure) • MPEG-4 (.mp4, .m4a, Android 10 ou version ultérieure) |
• WebM (.webm) |
Compatibilité avec les annonces vidéo
Formats vidéo
Format | Encodeur | Décodeur | Formats de conteneurs de types de fichiers | Détails | |
---|---|---|---|---|---|
Extracteur | Muxeur | ||||
H.263 | OUI | OUI |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
La prise en charge de H.263 est facultative sous Android 7.0 et versions ultérieures. |
Profil de référence (BP) H.264 AVC |
Android 3.0 ou version ultérieure | OUI |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, audio AAC uniquement, non accessible par recherche, Android 3.0 et versions ultérieures) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
|
H.264 AVC Main Profile (MP) |
Android 6.0 et versions supérieures | OUI | Le décodeur est obligatoire, l'encodeur est recommandé. | ||
H.265 HEVC | Android 5.0 ou version ultérieure |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Profil principal de niveau 3 pour les appareils mobiles et profil principal de niveau 4.1 pour Android TV | |
MPEG-4 SP | OUI | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | ||
VP8 | Android 4.3 ou version ultérieure | Android 2.3.3 ou version ultérieure |
• WebM (.webm) • Matroska (.mkv, Android 4.0 et versions ultérieures) |
• WebM (.webm) | Disponible en streaming uniquement sur Android 4.0 ou version ultérieure |
VP9 | Android 4.4 ou version ultérieure |
• WebM (.webm) • Matroska (.mkv) • MPEG-4 (.mp4) |
• WebM (.webm) | ||
AV1 | Android 14 ou version ultérieure | Android 10 ou version ultérieure |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | L'encodeur et le décodeur sont obligatoires à partir d'Android 14. |
APV | Android 16 ou version ultérieure | Android 16 ou version ultérieure | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | L'encodeur et le décodeur sont obligatoires à partir d'Android 16. |
Recommandations concernant l'encodage vidéo
Le tableau ci-dessous liste les profils et paramètres d'encodage vidéo du framework multimédia Android recommandés pour la lecture à l'aide du codec H.264 Baseline Profile. Les mêmes recommandations s'appliquent au codec Main Profile, qui n'est disponible que sur Android 6.0 et versions ultérieures.
SD (basse qualité) | SD (haute qualité) | HD 720p (non disponible sur tous les appareils) | |
---|---|---|---|
Résolution vidéo | 176 x 144 px | 480 x 360 px | 1 280 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 liste 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 (non disponible sur tous les appareils) | HD 1080p (non disponible sur tous les appareils) | |
---|---|---|---|---|
Résolution vidéo | 320 x 180 px | 640 x 360 px | 1 280 x 720 px | 1 920 x 1 080 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 de décodage vidéo
Les implémentations d'appareils doivent prendre en charge la résolution vidéo dynamique et le changement 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 prise en charge par chaque codec sur l'appareil.
Les implémentations compatibles avec le décodeur Dolby Vision doivent respecter les consignes suivantes:
- Fournissez un extracteur compatible avec Dolby Vision.
- Affichez correctement le contenu Dolby Vision sur l'écran de l'appareil ou sur un port de sortie vidéo standard (par exemple, (HDMI, par exemple).
- Définissez l'index de piste de la ou des couches de base rétrocompatibles (le cas échéant) sur celui de la couche Dolby Vision combinée.
Exigences concernant le streaming vidéo
Des exigences supplémentaires s'appliquent aux contenus vidéo diffusés en streaming via HTTP ou RTSP:
- Pour les conteneurs 3GPP et MPEG-4, l'atome
moov
doit précéder tous les atomesmdat
, mais doit suivre 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 être séparés de plus de 500 ko. Pour minimiser cette dérive audio/vidéo, envisagez d'intercaler l'audio et la vidéo en plus petites tailles de blocs.
Compatibilité avec les images
Format | Encodeur | Décodeur | Détails | Types de fichiers Formats de conteneur |
---|---|---|---|---|
BMP | OUI | BMP (.bmp) | ||
GIF | OUI | GIF (.gif) | ||
JPEG | OUI | OUI | Base+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 est possible 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
- Projet de protocole pour le streaming en direct HTTP/HTTPS:
- Fichiers multimédias MPEG-2 TS uniquement
- Version 3 du protocole Android 4.0 ou version ultérieure
- Version de protocole 2 Android 3.x
- Non compatible avant Android 3.0
Remarque:HTTPS n'est pas compatible avec les versions antérieures à Android 3.1.
Formats vidéo HDR
Les OEM peuvent activer n'importe quel format HDR de leur choix avec l'architecture HDR Android, qui répond aux besoins fondamentaux des formats HDR: tampons 10 bits, métadonnées (statiques, dynamiques et aucune), 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 du HDR, nous exigeons des OEM qu'ils prennent en charge quelques formats de base sur les appareils compatibles avec le HDR:
- Pour la lecture de contenus professionnels, tels que des films en streaming, nous exigeons le format HDR10.
- Pour la capture et la lecture de contenus générés par les utilisateurs, nous exigeons HLG10 afin d'offrir une expérience cohérente sur l'ensemble des appareils Android.
Les OEM qui ajoutent la compatibilité HDR doivent prendre en charge ces formats, mais peuvent également prendre en charge d'autres formats tels que HDR10+ ou Dolby Vision.
Format | Fonction de transfert | Métadonnées | Codec | Profondeur de bit |
---|---|---|---|---|
HLG10 | HLG | Non | HEVC | 10 bits |
HDR10 | PQ | Statique | HEVC | 10 bits |
HDR10+ | PQ | Statique | HEVC | 10 bits |
Dolby Vision 8.4 | HLG | Dynamique | HEVC | 10 bits |
Recommandations de gestion des formats
Format de capture | Format d'importation | Format de diffusion |
HLG | Compatibilité du backend de l'application avec le format HDR HLG | Appareils compatibles avec le HDR (HLG):
HLG Les appareils sont compatibles avec le HDR (pas de compatibilité avec HLG, uniquement PQ): SDR (mappage des tons de HLG vers SDR dans le backend) Appareils non compatibles avec le format HDR: SDR (mappage des tons de HLG vers SDR dans le backend) |
Cas d'utilisation 2: Capture avec l'appareil photo natif ou importation depuis la galerie de l'utilisateur (le backend de l'application est compatible avec le HDR)
Format de capture | Format d'importation | Format de diffusion |
HLG | HLG | Identique au cas d'utilisation de la capture dans l'application |
HDR10+ | HLG
Mappage des tons de HDR10+ (PQ) vers HLG avant l'importation à l'aide d'API de transformation |
Identique au cas d'utilisation de la capture dans l'application |
DV8.4 | HLG
(DV8.4 utilise HLG et le flux de bits se comportera comme HLG, donc aucun mappage de tons n'est nécessaire) |
Identique au cas d'utilisation de la capture dans l'application |
Cas d'utilisation 3: le backend de l'application n'est pas compatible avec le HDR
Format de capture | Format d'importation | Format de diffusion |
Tous les formats | SDR
Créer une carte tonale HLG vers SDR avant l'importation à l'aide des API de transformateur |
SDR |