Formati multimediali supportati

Questo documento descrive il supporto di codec, contenitori e protocolli di rete multimediali fornito dalla piattaforma Android.

Le tabelle riportate di seguito descrivono il supporto dei formati multimediali integrato nella piattaforma Android. SÌ indica che il formato è disponibile su palmari e tablet con tutte le versioni di Android. Se è specificata una piattaforma Android specifica, il formato è disponibile su smartphone e tablet che eseguono quella versione e tutte le versioni successive. Il formato potrebbe essere disponibile anche nelle versioni precedenti, ma non è garantito. Su fattori di forma diversi da smartphone e tablet, il supporto per i formati media può variare.

Tieni presente che un determinato dispositivo mobile potrebbe supportare formati o tipi di file aggiuntivi non elencati in queste tabelle. Inoltre, se utilizzi direttamente un MediaCodec, puoi accedere a qualsiasi formato multimediale disponibile, indipendentemente dai tipi di file e dai formati contenitore supportati.

Supporto audio

Formato Codificatore Decoder Formati dei contenitori dei tipi di file Dettagli
Estrattore Muxer
AAC LC • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF non supportato)
• MPEG-TS (.ts, non cercabile, Android 3.0 e versioni successive)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF non supportato)
• MPEG-TS (non sicuro) (.ts, non cercabile, Android 3.0 e versioni successive)
Supporto per contenuti mono/stereo/5.0/5.1 con frequenze di campionamento standard da 8 a 48 kHz.
HE-AACv1 (AAC+) Android 4.1 o versioni successive
HE-AACv2 (AAC+ migliorato)   Supporto per contenuti stereo/5.0/5.1 con frequenze di campionamento standard da 8 a 48 kHz.
xHE-AAC   Android 9 e versioni successive Supporto di contenuti fino a 8 canali con frequenze di campionamento standard da 8 a 48 kHz
AAC ELD (AAC a basso ritardo migliorato) Android 4.1 o versioni successive Android 4.1 o versioni successive Supporto per contenuti mono/stereo con frequenze di campionamento standard da 16 a 48 kHz
AMR-NB • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75-12,2 Kbps campionati a 8 kHz
AMR-WB 9 frequenze da 6,60 kbit/s a 23,85 kbit/s campionate a 16 kHz
FLAC Android 4.1 o versioni successive Android 3.1 e versioni successive • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)
• Matroska (.mkv)
Mono/stereo (nessun multicanale). Frequenze di campionamento fino a 48 kHz (ma fino a 44,1 kHz è consigliata sui dispositivi con uscita a 44,1 kHz, in quanto il downsampler da 48 a 44,1 kHz non include un filtro passa basso). Consigliati 16 bit; non viene applicato il dither per 24 bit.
MIDI   • Tipo 0 e 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
Tipo MIDI 0 e 1. Versioni 1 e 2 di DLS. XMF e Mobile XMF. Supporto per i formati delle sveglie RTTTL/RTX, OTA e iMelody
MP3   • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)
• Matroska (.mkv, Android 10 e versioni successive)
Mono/stereo 8-320 Kbps a velocità in bit costante (CBR) o variabile (VBR)
Opus Android 10 e versioni successive Android 5.0 e versioni successive • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 o versioni successive WAVE (.wav) PCM lineare a 8 e 16 bit (frequenze fino al limite dell'hardware). Frequenze di campionatura per registrazioni PCM non elaborate a 8000, 16000 e 44100 Hz.
Vorbis   • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 e versioni successive)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)
WebM (.webm)  

Supporto video

Formati video

Formato Codificatore Decoder Formati dei contenitori dei tipi di file Dettagli
Estrattore Muxer
H.263 • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Il supporto di H.263 è facoltativo in Android 7.0 e versioni successive
Profilo di baseline (BP)
AVC H.264
Android 3.0 e versioni successive • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, solo audio AAC, non cercabile, Android 3.0 e versioni successive)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Profilo principale (MP)
Android 6.0 e versioni successive Il decodificatore è obbligatorio, il codificatore è consigliato.
H.265 HEVC Android 5.0 e versioni successive • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Profilo principale di livello 3 per i dispositivi mobili e Profilo principale di livello 4.1 per Android TV
MPEG-4 SP   • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 e versioni successive Android 2.3.3 e versioni successive WebM (.webm)
• Matroska (.mkv, Android 4.0 e versioni successive)
WebM (.webm) Streamable solo su Android 4.0 e versioni successive
VP9 Android 4.4 e versioni successive WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
WebM (.webm)
AV1 Android 14 e versioni successive Android 10 e versioni successive • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) L'encoder e il decoder sono obbligatori a partire da Android 14.
APV Android 16 e versioni successive Android 16 e versioni successive • MPEG-4 (.mp4) • MPEG-4 (.mp4) L'encoder e il decoder sono obbligatori a partire da Android 16.

Consigli per la codifica video

La tabella seguente elenca i profili e i parametri di codifica video del framework multimediale Android consigliati per la riproduzione utilizzando il codec H.264 Baseline Profile. Gli stessi consigli valgono per il codec Main Profile, disponibile solo su Android 6.0 e versioni successive.

  SD (bassa qualità) SD (alta qualità) HD 720p (non disponibile su tutti i dispositivi)
Risoluzione video 176 x 144 px 480 x 360 px 1280 x 720 px
Frequenza fotogrammi video 12 f/s 30 fps 30 fps
Velocità in bit video 56 Kbps 500 Kbps 2 Mbps
Codec audio AAC-LC AAC-LC AAC-LC
Canali audio 1 (mono) 2 (stereo) 2 (stereo)
Velocità in bit audio 24 kbps 128 Kbps 192 kbps

La tabella seguente elenca i profili e i parametri di codifica video del framework multimediale Android consigliati per la riproduzione utilizzando il codec multimediale VP8.

  SD (bassa qualità) SD (alta qualità) HD 720p (non disponibile su tutti i dispositivi) HD 1080p (non disponibile su tutti i dispositivi)
Risoluzione video 320 x 180 px 640 x 360 px 1280 x 720 px 1920 x 1080 px
Frequenza fotogrammi video 30 fps 30 fps 30 fps 30 fps
Velocità in bit video 800 kbps 2 Mbps 4 Mbps 10 Mbps

Consigli per la decodifica video

Le implementazioni dei dispositivi devono supportare la risoluzione video dinamica e il passaggio della frequenza frame tramite le API Android standard all'interno dello stesso stream per tutti i codec VP8, VP9, H.264 e H.265 in tempo reale e fino alla risoluzione massima supportata da ciascun codec sul dispositivo.

Le implementazioni che supportano il decodificatore Dolby Vision devono rispettare queste linee guida:

  • Fornisci un estrattore compatibile con Dolby Vision.
  • Mostrare correttamente i contenuti Dolby Vision sullo schermo del dispositivo o su una porta di uscita video standard (ad es. HDMI).
  • Imposta l'indice traccia dei livelli base compatibili con le versioni precedenti (se presenti) in modo che corrisponda a quello del livello Dolby Vision combinato.

Requisiti per lo streaming video

Per i contenuti video trasmessi in streaming tramite HTTP o RTSP, sono previsti requisiti aggiuntivi:

  • Per i contenitori 3GPP e MPEG-4, l'atomo moov deve precedere tutti gli atomi mdat, ma deve seguire l'atomo ftyp.
  • Per i contenitori 3GPP, MPEG-4 e WebM, i sample audio e video corrispondenti allo stesso offset di tempo non possono essere distanti più di 500 KB. Per ridurre al minimo questo sfasamento audio/video, valuta la possibilità di interlacciare l'audio e il video in blocchi più piccoli.

Supporto delle immagini

Formato Codificatore Decoder Dettagli Tipi di file
Formati contenitore
BMP     BMP (.bmp)
GIF     GIF (.gif)
JPEG Base+progressiva JPEG (.jpg)
PNG   PNG (.png)
WebP Android 4.0 e versioni successive
Lossless: Android 10 e versioni successive
Trasparenza: Android 4.2.1 e versioni successive
Android 4.0 e versioni successive
Lossless: Android 4.2.1 e versioni successive
Trasparenza: Android 4.2.1 e versioni successive
La codifica senza perdita di dati può essere ottenuta su Android 10 utilizzando una qualità di 100. WebP (.webp)
HEIF   Android 8.0 e versioni successive   HEIF (.heic; .heif)
AVIF (profilo di riferimento) Android 14 e versioni successive Android 14 e versioni successive L'encoder e il decoder sono obbligatori a partire da Android 14. AVIF (.avif)

Protocolli di rete

I seguenti protocolli di rete sono supportati per la riproduzione di audio e video:

  • RTSP (RTP, SDP)
  • Streaming progressivo HTTP/HTTPS
  • Protocollo di bozza per lo streaming live HTTP/HTTPS:
    • Solo file multimediali MPEG-2 TS
    • Protocollo versione 3, Android 4.0 e versioni successive
    • Versione del protocollo 2, Android 3.x
    • Non supportato prima di Android 3.0

Nota:HTTPS non è supportato prima di Android 3.1.

Formati video HDR

Gli OEM possono attivare qualsiasi formato HDR che scelgono con l'architettura HDR di Android, che soddisfa le esigenze di base dei formati HDR: buffer a 10 bit, metadati (statici, dinamici e nessuno), funzione di trasferimento e gestione dello spazio colore.

Per garantire la coerenza per gli sviluppatori e soddisfare i casi d'uso HDR principali, richiediamo agli OEM di supportare alcuni formati di base sui dispositivi che supportano l'HDR:

  • Per la riproduzione di contenuti professionali, come film in streaming, è richiesto HDR10.
  • Per l'acquisizione e la riproduzione dei contenuti generati dagli utenti, richiediamo HLG10 per offrire un'esperienza coerente su tutti i dispositivi Android.

Gli OEM che aggiungono il supporto HDR devono supportare questi formati, ma possono supportare anche formati aggiuntivi come HDR10+ o Dolby Vision.

Formato Funzione di trasferimento Metadati Codec Profondità di bit
HLG10 HLG No HEVC 10 bit
HDR10 PQ Statico HEVC 10 bit
HDR10+ PQ Statico HEVC 10 bit
Dolby Vision 8.4 HLG Dinamico HEVC 10 bit

Consigli per la gestione dei formati

Formato di acquisizione Formato di caricamento Formato di invio
HLG Il backend dell'app supporta HDR HLG Dispositivi che supportano HDR (HLG):

HLG

I dispositivi supportano HDR (nessun supporto HLG, solo PQ):

SDR (mappa tonale da HLG a SDR nel backend)

Dispositivi che non supportano HDR: SDR (mappa tonale da HLG a SDR nel backend)

Caso d'uso 2: acquisizione con la fotocamera nativa o importazione dalla galleria dell'utente (il backend dell'app supporta HDR)

Formato di acquisizione Formato di caricamento Formato di invio
HLG HLG Uguale al caso d'uso di acquisizione in-app
HDR10+ HLG

Esegui la mappatura tonale da HDR10+ (PQ) a HLG prima del caricamento utilizzando le API di trasformazione

Uguale al caso d'uso di acquisizione in-app
DV8.4 HLG

(DV8.4 utilizza HLG e il flusso di bit si comporterà come HLG, quindi non è richiesta la mappatura tonale)

Uguale al caso d'uso di acquisizione in-app

Caso d'uso 3: il backend dell'app non supporta HDR

Formato di acquisizione Formato di caricamento Formato di invio
Qualsiasi formato SDR

Esegui la mappatura tonale da HLG a SDR prima del caricamento utilizzando le API di trasformazione

SDR