Questo documento descrive il supporto di codec multimediali, contenitori e protocolli di rete forniti dalla piattaformaAndroid.
Le tabelle seguenti descrivono il supporto del formato multimediale incorporato nella piattaforma Android. SI significa che il formato è disponibile su tutte le versioni di Android. Dove è specificata una specifica piattaforma Android, il formato è disponibile per quella versione e per tutte le versioni successive. Il formato potrebbe essere disponibile anche nelle versioni precedenti, ma questo non è garantito.
Nota che un particolare dispositivo mobile potrebbe supportare ulteriori formati o tipi di file che non sono elencati in queste tabelle. Inoltre, se si utilizza unMediaCodec direttamente, è possibile accedere a qualsiasi formato multimediale disponibile, indipendentemente dai tipi di file e dai formati contenitore supportati.
Supporto audio
Formato | Encoder | Decoder | Dettagli | Tipi di file Formati contenitore |
---|---|---|---|---|
AAC LC | Sì | Sì | Supporto per 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+, codifica in Android 4.0+, ADIF non supportato) – MPEG-TS (.ts, non ricercabile, Android 3.0+) |
HE-AACv1 (AAC+) | Android 4.1+ | YES | ||
HE-AACv2 (enhanced AAC+) | YES | Supporto per stereo/5.0/5.1 con frequenze di campionamento standard da 8 a 48 kHz. | ||
xHE-AAC | Android 9+ | Supporto per contenuti fino a 8ch con frequenze di campionamento standard da 8 a 48 kHz | ||
AAC ELD (enhanced low delay AAC) | Android 4.1+ | Android 4.1+ | Supporto per contenuti mono/stereo con frequenze di campionamento standard da 16 a 48 kHz | |
AMR-NB | Sì | Sì | 4.75 a 12.2 kbps campionati @ 8kHz | – 3GPP (.3gp) – AMR (.amr) |
AMR-WB | Sì | Sì | 9 tassi da 6.60 kbit/s a 23.85 kbit/s campionati @ 16kHz | |
FLAC | Android 4.1+ | Android 3.1+ | Mono/Stereo (no multicanale). Tassi di campionamento fino a 48 kHz (ma fino a 44.1kHz è raccomandato su dispositivi con uscita a 44.1 kHz, poiché il downsampler da 48 a 44.1 kHz non include un filtro passa basso). Consigliato a 16 bit; nessun dither applicato per 24 bit. | – FLAC (.flac) – MPEG-4 (.mp4, .m4a, Android 10+) |
MIDI | Sì | MIDI Type 0 e 1. DLS Version 1 e 2. XMF e Mobile XMF. Supporto per i formati di suoneria RTTTL/RTX, OTA e iMelody | – Tipo 0 e 1 (.mid, .xmf, .mxmf) – RTTTL/RTX (.rtttl, .rtx) – OTA (.ota) – iMelody (.imy) |
|
MP3 | Sì | Mono/Stereo 8-320Kbps costante (CBR) o bit-rate variabile (VBR) | – MP3 (.mp3) – MPEG-4 (.mp4, .m4a, Android 10+) – Matroska (.mkv, Android 10+) |
|
Opus | Android 10+ | Android 5.0+ | – Ogg (.ogg) – Matroska (.mkv) |
|
PCM/WAVE | Android 4.1+ | YES | 8- e 16-bit linear PCM (tassi fino al limite dell’hardware). Campionamento per registrazioni PCM grezze a 8000, 16000 e 44100 Hz. | WAVE (.wav) |
Vorbis | Sì | – Ogg (.ogg) – Matroska (.mkv, Android 4.0+) – MPEG-4 (.mp4, .m4a, Android 10+) |
Supporto video
Formati video
Formato | Encoder | Decoder | Dettagli | Tipi di file Formati contenitore |
---|---|---|---|---|
H.263 | Sì | Sì | Supporto per H.263 è opzionale in Android 7.0+ | – 3GPP (.3gp) – MPEG-4 (.mp4) – Matroska (.mkv) |
H.264 AVC Baseline Profile (BP) |
Android 3.0+ | YES | – 3GPP (.3gp) – MPEG-4 (.mp4) – MPEG-TS (.ts, solo audio AAC, non ricercabile, Android 3.0+) – Matroska (.mkv) |
|
H.264 AVC Profilo principale (MP) |
Android 6.0+ | Sì | Il decoder è richiesto, l’encoder è consigliato. | |
H.265 HEVC | Android 5.0+ | Main Profile Level 3 per dispositivi mobili e Main Profile Level 4.1 per Android TV | – MPEG-4 (.mp4) – Matroska (.mkv) |
|
MPEG-4 SP | Sì | 3GPP (.3gp) | ||
VP8 | Android 4.3+ | Android 2.3.3+ | Streamable only in Android 4.0 and above | – WebM (.webm) – Matroska (.mkv, Android 4.0+) |
VP9 | Android 4.4+ | – WebM (.webm) – Matroska (.mkv) |
||
AV1 | Android 10+ | Il decoder è opzionale. | – MPEG-4 (.mp4) – Matroska (.mkv) |
Consigli per la codifica video
La tabella sottostante elenca i profili e i parametri di codifica video di Android media framework consigliati per la riproduzione utilizzando il codec H.264 codec Baseline Profile. Le stesse raccomandazioni si applicano al codec Main Profile, che è disponibile solo in Android 6.0 e successivi.
SD (Bassa qualità) | SD (Alta qualità) | HD 720p (N/A su tutti dispositivi) | |
---|---|---|---|
Risoluzione video | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
Video frame rate | 12 fps | 30 fps | 30 fps |
Video bitrate | 56 Kbps | 500 Kbps | 2 Mbps |
Codec audio | AAC-LC | AAC-LC | AAC-LC |
Canali audio | 1 (mono) | 2 (stereo) | 2 (stereo) |
Bitrate audio | 24 Kbps | 128 Kbps | 192 Kbps |
La tabella sottostante elenca i profili e i parametri di codifica video di Android media framework consigliati per la riproduzione utilizzando il codec VP8.
SD (bassa qualità) | SD (alta qualità) | HD 720p (N/A su tutti i dispositivi) | HD 1080p (N/A su tutti i dispositivi) | |
---|---|---|---|---|
Risoluzione video | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 px |
Video frame rate | 30 fps | 30 fps | 30 fps | 30 fps |
Video bitrate | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
Raccomandazioni per la decodifica video
Le implementazioni dei dispositivi devono supportare la risoluzione video dinamica e la commutazione del frame rate attraverso le API standard di Android all’interno dello stesso flusso per tutti i 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:
- Fornire un estrattore compatibile con Dolby Vision.
- Visualizzare correttamente il contenuto Dolby Vision sullo schermo del dispositivo o su una porta di uscita video standard (ad esempio, HDMI).
- Impostare l’indice della traccia dello o degli strati di base retrocompatibili (se presenti) in modo che sia uguale all’indice della traccia dello strato combinato Dolby Vision.
Requisiti per lo streaming video
Per il contenuto video che viene trasmesso in streaming su HTTP o RTSP, ci sono ulteriori requisiti:
- Per i contenitori 3GPP e MPEG-4, l’atomo
moov
deve precedere qualsiasi atomomdat
, ma deve seguire l’atomoftyp
. - 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 minimizzare questa deriva audio/video, considerare l’interleaving di audio e video in chunk più piccoli.
Supporto immagini
Formato | Encoder | Decoder | Dettagli | Tipi di file Formati contenitore |
|
---|---|---|---|---|---|
BMP | Sì | BMP (.bmp) | |||
GIF | YES | GIF (.gif) | |||
JPEG | YES | YES | Base+progressive | JPEG (.jpg) | |
PNG | Sì | Sì | PNG (.png) | ||
WebP | Android 4.0+ Sì: Android 10+ Trasparenza: Android 4.2.1+ |
Android 4.0+ Senza perdite: Android 4.2.1+ Trasparenza: Android 4.2.1+ |
La codifica senza perdite può essere ottenuta su Android 10 usando una qualità di 100. | WebP (.webp) | |
HEIF | Android 8.0+ | HEIF (.heic; .heif) |
Protocolli di rete
I seguenti protocolli di rete sono supportati per la riproduzione audio e video:
- RTSP (RTP, SDP)
- HTTP/HTTPS progressive streaming
- HTTP/HTTPS live streaming draft protocol:
- Solo file multimediali MPEG-2 TS
- Protocollo versione 3 Android 4.0 e superiori
- Protocollo versione 2 Android 3.x
- Non supportato prima di Android 3.0
Nota: HTTPS non è supportato prima di Android 3.1.