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 | SÌ | SÌ |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF non supportato) • MPEG-TS (.ts, non cercabile, Android 3.0 e versioni successive) |
• 3GPP (.3gp) • 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 | SÌ | |||
HE-AACv2 (AAC+ migliorato) | SÌ | 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 | SÌ | SÌ |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
4,75-12,2 Kbps campionati a 8 kHz |
AMR-WB | SÌ | SÌ | 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 | SÌ |
• 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 | SÌ |
• 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 | SÌ | 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 | SÌ |
• 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 | SÌ | SÌ |
• 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 | SÌ |
• 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 | SÌ | 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 | SÌ | • 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 atomimdat
, ma deve seguire l'atomoftyp
. - 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 | SÌ | BMP (.bmp) | ||
GIF | SÌ | GIF (.gif) | ||
JPEG | SÌ | SÌ | Base+progressiva | JPEG (.jpg) |
PNG | SÌ | SÌ | 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 |