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 | SÌ | SÌ | Supporto per contenuti mono/stereo/5.0/5.1 con frequenze di campionamento standard da 8 a 48 kHz. |
• 3GPP (.3gp) • 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 | 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 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 | SÌ | SÌ | Da 4,75 a 12,2 kbps campionata a 8 kHz |
• 3GPP (.3gp) • AMR (.amr) |
AMR-WB | SÌ | SÌ | 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 | SÌ | 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 | SÌ | 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 | SÌ | 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 | SÌ |
• 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 | SÌ | SÌ | 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 | SÌ |
• 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 | SÌ | 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 | SÌ | 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 atomomdat
, ma deve succedere all'atomftyp
. - 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 | 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 | 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 |