Formati multimediali supportati

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

Le tabelle seguenti descrivono il supporto dei formati multimediali integrato nella piattaforma Android. SÌ significa che il formato è disponibile su palmari e tablet su cui sono installate tutte le versioni di Android. Se viene specificata una piattaforma Android specifica, il formato è disponibile su telefoni e tablet che utilizzano quella versione e tutte le versioni successive. Il formato potrebbe essere disponibile anche nelle versioni precedenti, ma questo non è garantito. Il supporto per i formati multimediali può variare in base a fattori di forma diversi da telefoni e tablet.

Tieni presente che un determinato dispositivo mobile potrebbe supportare altri formati o tipi di file 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 Decodificatore Dettagli Tipi di file
Formati dei contenitori
LC AAC Supporto per contenuti mono/stereo/5.0/5.1 con frequenze di campionamento standard da 8 a 48 kHz. • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, decodifica in Android 3.1 e versioni successive, codifica in Android 4.0 e versioni successive, ADIF non supportato)
• MPEG-TS (.ts, non ricercabile, Android 3.0 e versioni successive)
HE-AACv1 (AAC+) Android 4.1 e 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 per contenuti fino a 8 canali con frequenze di campionamento standard da 8 a 48 kHz
AAC ELD (Enhanced Low Delay AAC) Android 4.1 e versioni successive Android 4.1 e versioni successive Supporto per contenuti mono/stereo con frequenze di campionamento standard da 16 a 48 kHz
AMR-NB Da 4,75 a 12,2 kbps campionata a 8 kHz • 3GPP (.3gp)
• AMR (.amr)
AMR-WB 9 frequenze da 6,60 kbit/s a 23,85 kbit/s campionate a 16 kHz
FLAC Android 4.1 e versioni successive Android 3.1 e versioni successive Mono/stereo (non multicanale). Frequenze di campionamento fino a 48 kHz (ma fino a 44,1 kHz sono consigliate sui dispositivi con output a 44,1 kHz, poiché il downsampler da 48 a 44,1 kHz non include un filtro passa basso). 16 bit consigliata; nessun dither applicato per 24 bit. • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)
MIDI   Tipo MIDI 0 e 1. DLS versione 1 e 2. XMF e Mobile XMF. Supporto per i formati di suonerie RTTTL/RTX, OTA e iMelody • Digita 0 e 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MP3   Mono/stereo a 8-320 Kbps costante (CBR) o a velocità in bit variabile (VBR) • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)
• Matroska (.mkv, Android 10 e versioni successive)
Opus Android 10 e versioni successive Android 5.0 e versioni successive • Ogg (.ogg)
• Matroska (.mkv)
PCM/ONDO Android 4.1 e versioni successive PCM lineare a 8 e 16 bit (velocità fino al limite di hardware). Frequenza di campionamento per registrazioni PCM non elaborate a 8000, 16.000 e 44.100 Hz. WAVE (.wav)
Vorbis     • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 e versioni successive)
• MPEG-4 (.mp4, .m4a, Android 10 e versioni successive)

Supporto video

Formati video

Formato Codificatore Decodificatore Dettagli Tipi di file
Formati dei contenitori
H.263 Il supporto per H.263 è facoltativo in Android 7.0 e versioni successive • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)

Profilo di base (BP) AVC H.264
Android 3.0 e versioni successive • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, solo audio AAC, non ricercabile, Android 3.0 e versioni successive)
• Matroska (.mkv)
H.264 AVC
Profilo principale (MP)
Android 6.0 e versioni successive Il decoder è obbligatorio, l'encoder è consigliato.
H.265 HEVC Android 5.0 e versioni successive Livello principale del profilo 3 per i dispositivi mobili e livello del profilo principale 4.1 per Android TV • MPEG-4 (.mp4)
• Matroska (.mkv)
MPEG-4 SP     3GPP (0,3 gp)
VP8 Android 4.3 e versioni successive Android 2.3.3 e versioni successive Riproduzione in streaming solo su Android 4.0 e versioni successive WebM (.webm)
• Matroska (.mkv, Android 4.0 e versioni successive)
VP9 Android 4.4 e versioni successive WebM (.webm)
• Matroska (.mkv)
AV1 Android 14 e versioni successive Android 10 e versioni successive Gli encoder e il decoder sono obbligatori a partire da Android 14. • MPEG-4 (.mp4)
• Matroska (.mkv)

Consigli sulla codifica video

Nella tabella che segue sono elencati i profili e i parametri di codifica video del framework multimediale Android consigliati per la riproduzione mediante il codec H.264 Baseline Profile. Gli stessi consigli si applicano al codec Main Profile, che è disponibile solo su Android 6.0 e versioni successive.

  SD (bassa qualità) SD (alta qualità) HD 720p (N/D 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

Nella tabella che segue sono elencati i profili di codifica video del framework Android multimediale e i parametri consigliati per la riproduzione mediante il codec multimediale VP8.

  SD (bassa qualità) SD (alta qualità) HD 720p (N/D su tutti i dispositivi) HD 1080p (N/D 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 sulla decodifica video

Le implementazioni dei dispositivi devono supportare la risoluzione video dinamica e il cambio di frequenza fotogrammi tramite le API Android standard all'interno dello stesso flusso 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 decoder Dolby Vision devono seguire queste linee guida:

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

Requisiti per lo streaming video

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

  • Per i container 3GPP e MPEG-4, l'atom moov deve precedere qualsiasi atomo mdat, ma deve succedere all'atom ftyp.
  • Per i contenitori 3GPP, MPEG-4 e WebM, i campioni audio e video corrispondenti allo stesso offset temporale non possono essere distanti più di 500 KB. Per ridurre al minimo questa deviazione audio/video, prendi in considerazione l'interfoliazione di audio e video in blocchi di dimensioni inferiori.

Supporto immagini

Formato Codificatore Decodificatore Dettagli Tipi di file
Formati dei contenitori
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 Gli encoder e il decoder sono obbligatori a partire da Android 14. AVIF (.avif)

Protocolli di rete

Per la riproduzione audio e video sono supportati i seguenti protocolli di rete:

  • RTSP (RTP, SDP)
  • Streaming progressivo HTTP/HTTPS
  • Protocollo in bozza per live streaming HTTP/HTTPS:
    • Solo file multimediali MPEG-2 TS
    • Protocollo versione 3 Android 4.0 e superiore
    • Protocollo versione 2 Android 3.x
    • Funzionalità non supportata prima di Android 3.0

Nota: HTTPS non è supportato prima di Android 3.1.

Formati video HDR

Gli OEM possono attivare qualsiasi formato HDR scelgano con l'architettura Android HDR, che soddisfa le esigenze principali 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 affrontare i principali casi d'uso HDR, chiediamo agli OEM di supportare alcuni formati di base su dispositivi che supportano l'HDR:

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

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

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

Consigli per la gestione dei formati

Formato di acquisizione Formato di caricamento Formato di pubblicazione
HLG Supporto del backend dell'app HLG HDR Dispositivi che supportano la tecnologia HDR (HLG):

HLG

I dispositivi supportano HDR (senza supporto HLG solo PQ):

SDR (mappa tono da HLG a SDR nel backend)

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

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

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

Mappa dei toni da HDR10+ (PQ) a HLG prima del caricamento utilizzando le API Transformer

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

(DV8.4 utilizza HLG e bitstream si comporterà come HLG quindi non è necessaria alcuna mappatura tonale)

Uguale al caso d'uso di acquisizione in-app

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

Formato di acquisizione Formato di caricamento Formato di pubblicazione
Qualsiasi formato SDR

Mappa tonale da HLG a SDR prima del caricamento utilizzando le API Transformer

SDR