Formats multimédias acceptés

Ce document décrit la prise en charge des codecs multimédias, des conteneurs et des protocoles réseau fournie par la plate-forme Android.

Les tableaux ci-dessous décrivent la compatibilité avec les 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 indiquée, le format est disponible sur les téléphones et tablettes exécutant cette version et toutes les versions ultérieures. Il est également possible que le format soit disponible dans les versions antérieures, mais cela n'est pas garanti. La compatibilité avec les formats multimédias peut varier sur les facteurs de forme autres que les téléphones et les tablettes.

Notez qu'un appareil mobile particulier peut être compatible avec d'autres formats ou types de fichiers qui ne sont pas listés 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 Types de fichiers et formats de conteneurs Détails
Extracteur Muxer
AAC-LC OUI OUI • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF non accepté)
• MPEG-TS (.ts, non compatible avec la recherche, Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF non pris en charge)
• MPEG-TS (non sûr) (.ts, non consultable, Android 3.0+)
Contenu mono/stéréo/5.0/5.1 pris en charge avec des taux d'échantillonnage standards de 8 à 48 kHz.
HE-AACv1 (AAC+) Android 4.1 et versions ultérieures OUI
HE-AACv2 (AAC+ amélioré)   OUI 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 Prise en charge du contenu jusqu'à 8 canaux avec des taux d'échantillonnage standards de 8 à 48 kHz
AAC ELD (AAC à faible délai amélioré) Android 4.1 et versions ultérieures Android 4.1 et versions ultérieures 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 et versions ultérieures 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 multicanal). Taux d'échantillonnage jusqu'à 48 kHz (mais jusqu'à 44,1 kHz est recommandé sur les appareils avec une sortie à 44,1 kHz, car le sous-échantillonneur de 48 à 44,1 kHz n'inclut pas de filtre passe-bas). 16 bits recommandé ; aucune trame n'est appliquée pour 24 bits.
MIDI   OUI • Type 0 et 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI de type 0 et 1. DLS versions 1 et 2. XMF et Mobile XMF. Prise en charge des formats de sonnerie RTTTL/RTX, OTA et iMelody
MP3   OUI • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
Mono/Stéréo, débit constant (CBR) ou variable (VBR) de 8 à 320 kbit/s
Opus Android 10 et versions ultérieures Android 5.0 ou version ultérieure • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
• WebM (.webm)
PCM/WAVE Android 4.1 et versions ultérieures OUI WAVE (.wav) PCM linéaire 8 et 16 bits (fréquences 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+)
• MPEG-4 (.mp4, .m4a, Android 10+)
• WebM (.webm)  

Compatibilité vidéo

Formats vidéo

Format Encodeur Décodeur Types de fichiers et formats de conteneurs Détails
Extracteur Muxer
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 dans Android 7.0 et versions ultérieures.
Profil de référence H.264/AVC
Android 3.0 ou version ultérieure OUI • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, audio AAC uniquement, non compatible avec la recherche, Android 3.0+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Profil principal H.264 AVC
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 ou version ultérieure)
• WebM (.webm) Streaming disponible uniquement sur Android 4.0 et versions ultérieures
VP9 Android 4.4+ • WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
• WebM (.webm)
AV1 Android 14 et versions ultérieures Android 10 et versions ultérieures • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) L'encodeur et le décodeur sont obligatoires à partir d'Android 14.
APV Android 16 et versions ultérieures Android 16 et versions ultérieures • 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 dans Android 6.0 et versions ultérieures.

  SD (qualité médiocre) 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 (qualité médiocre) 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 concernant le décodage vidéo

Les implémentations d'appareils doivent prendre en charge le changement dynamique de résolution et de fréquence d'images vidéo via les API Android standards au sein du 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.
  • 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 piste de la ou des couches de base rétrocompatibles (le cas échéant) sur la même valeur que l'index de piste de la couche Dolby Vision combinée.

Exigences relatives au streaming vidéo

Pour les contenus vidéo diffusés 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 tout atome mdat, mais doit suivre l'atome ftyp.
  • Pour les conteneurs 3GPP, MPEG-4 et WebM, les échantillons audio et vidéo correspondant au même horodatage ne doivent pas être séparés de plus de 500 ko. Pour minimiser ce décalage audio/vidéo, pensez à entrelacer l'audio et la vidéo dans des segments plus petits.

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 Base+progressif 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+
Sans perte : Android 4.2.1+
Transparence : Android 4.2.1+
L'encodage sans perte est possible sur Android 10 avec une qualité de 100. WebP (.webp)
HEIF Android 10 ou version ultérieure
(via MediaCodec ou HeifWriter ; pas dans Bitmap.compress)
Android 9.0 et versions ultérieures Appareil facultatif. Consultez ImageDecoder.isMimeTypeSupported("image/heif") pour en savoir plus sur la prise en charge des 8 bits. Le décodage 10 bits nécessite le profil HEVC Main10 en option. HEIF (.heic, .heif)
AVIF (profil de référence) Android 14 ou version ultérieure
(via MediaCodec ; pas dans Bitmap.compress)
Android 12 et versions ultérieures Le décodage 8 bits est pris en charge à partir d'Android 12. Le décodage 10 bits est facultatif. Vérifiez ImageDecoder.isMimeTypeSupported("image/avif") pour la prise en charge 10 bits (même si la valeur est "false", le décodage 8 bits fonctionne toujours). AVIF (.avif)

Protocoles de réseau

Les protocoles réseau suivants sont compatibles avec la lecture audio et vidéo :

  • RTSP (RTP, SDP)
  • Streaming progressif HTTP/HTTPS
  • Protocole provisoire de diffusion en direct HTTP/HTTPS :
    • Fichiers multimédias MPEG-2 TS uniquement
    • Version 3 du protocole Android 4.0 et versions ultérieures
    • Version 2 du protocole Android 3.x
    • Non compatible avec les versions antérieures à Android 3.0

Remarque : HTTPS n'est pas compatible avec les versions d'Android antérieures à la version 3.1.

Formats vidéo HDR

Les OEM peuvent activer le format HDR de leur choix avec l'architecture Android HDR, qui fournit les besoins de base 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 demandons aux OEM de prendre en charge quelques formats de base sur les appareils compatibles avec le HDR :

  • Pour la lecture de contenus professionnels, comme les 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 le format HLG10 afin d'offrir une expérience cohérente sur les appareils Android.

Les OEM qui ajoutent la prise en charge du HDR doivent prendre en charge ces formats, mais peuvent également prendre en charge des formats supplémentaires 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 pour la gestion des formats

Format de capture Format d'importation Format de diffusion
HLG Compatibilité HDR HLG avec le backend de l'application Appareils compatibles avec le HDR (HLG) :

HLG

Appareils compatibles avec le HDR (PQ uniquement, pas HLG) :

SDR (mappage de tonalité de HLG à SDR dans le backend)

Appareils non compatibles HDR : SDR (mappage de tonalité de HLG à 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

Mappez la tonalité de HDR10+ (PQ) à HLG avant l'importation à l'aide des API Transformer.

Identique au cas d'utilisation de la capture dans l'application
DV8.4 HLG

(DV8.4 utilise HLG et le flux binaire se comportera comme HLG, donc aucun mappage des tons n'est requis)

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

Mappez la tonalité de HLG à SDR avant l'importation à l'aide des API Transformer.

SDR