Este documento descreve o suporte a codec de mídia, contêiner e protocolo de rede fornecidos pela plataforma Android.
As tabelas abaixo descrevem a compatibilidade de formatos de mídia integrada à plataforma Android. "YES" significa que o formato está disponível em dispositivos portáteis e tablets com todas as versões do Android. Quando uma Plataforma Android específica é especificada, o formato fica disponível em celulares e tablets com essa versão e todas as versões mais recentes. O formato também pode estar disponível em versões anteriores, mas isso não é garantido. Em formatos que não sejam celulares e tablets, o suporte ao formato de mídia pode variar.
Um dispositivo móvel específico pode oferecer suporte a outros formatos ou tipos de arquivo que não estão listados nessas tabelas. Além disso, se você usar um MediaCodec diretamente, poderá acessar qualquer um dos formatos de mídia disponíveis, independentemente dos tipos de arquivo e formatos de contêiner com suporte.
Compatibilidade de áudio
Formato | Codificador | Decodificador | Detalhes | Tipos de arquivo Formatos de contêiner |
---|---|---|---|---|
AAC LC | SIM | SIM | Suporte a conteúdo mono/estéreo/5.0/5.1 com taxas de amostragem padrão de 8 a 48 kHz. |
• 3GPP (.3gp) • ADTS AAC bruto (.aac, decodificação no Android 3.1 ou mais recente, codificada no Android 4.0 ou mais recente, sem suporte a ADIF) • MPEG-TS (.ts, não pesquisável, Android 3.0 ou mais recente) |
HE-AACv1 (AAC+) | Android 4.1 ou superior | SIM | ||
HE-AACv2 (AAC+ aprimorado) | SIM | Suporte a conteúdo estéreo/5.0/5.1 com taxas de amostragem padrão de 8 a 48 kHz. | ||
xHE-AAC | Android 9 ou versão mais recente | Suporte a conteúdo de até 8C com taxas de amostragem padrão de 8 a 48 kHz | ||
AAC ELD (AAC aprimorado com atraso baixo) | Android 4.1 ou superior | Android 4.1 ou superior | Suporte a conteúdo mono/estéreo com taxas de amostragem padrão de 16 a 48 kHz | |
AMR-NB | SIM | SIM | 4,75 a 12,2 kbps com amostragem a 8 kHz. |
• 3GPP (.3gp) • AMR (.amr) |
AMR-WB | SIM | SIM | 9 taxas de 6,60 kbit/s a 23,85 kbit/s com amostragem a 16 kHz. | |
FLAC | Android 4.1 ou superior | Android 3.1 ou mais recente | Mono/estéreo (sem multicanal). Taxas de amostragem de até 48 kHz (mas o valor de até 44,1 kHz é recomendado em dispositivos com saída de 44,1 kHz, já que o downsampler de 48 a 44,1 kHz não inclui um filtro passa-baixa). Recomendado para 16 bits; sem pontilhamento aplicado para 24 bits. |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 ou mais recente) |
MIDI | SIM | MIDI tipos 0 e 1. DLS versões 1 e 2. XMF e XMF para celular. Compatível com os formatos de toque RTTTL/RTX, OTA e iMelody. |
• Tipo 0 e 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
|
MP3 | SIM | Taxa de bits mono/estéreo constante (CBR) ou variável (VBR) de 8-320 kbps. |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 ou mais recente) • Matroska (.mkv, Android 10 ou mais recente) |
|
Opus | Android 10 e versões mais recentes | Android 5.0 ou mais recente |
• Ogg (.ogg) • Matroska (.mkv) |
|
PCM/WAVE | Android 4.1 ou superior | SIM | PCM linear de 8 e 16 bits (taxas até o limite de hardware). Taxas de amostragem para gravações PCM brutas a 8.000, 16.000 e 44.100 Hz. | WAVE (.wav) |
Vorbis | SIM |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0+) • MPEG-4 (.mp4, .m4a, Android 10+) |
Compatibilidade de vídeo
Formatos de vídeo
Formato | Codificador | Decodificador | Detalhes | Tipos de arquivo Formatos de contêiner |
---|---|---|---|---|
H.263 | SIM | SIM | A compatibilidade com H.263 é opcional no Android 7.0+ |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
H.264 AVC Perfil de referência (BP) |
Android 3.0 ou superior | SIM |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, áudio AAC, não pesquisável, Android 3.0+) • Matroska (.mkv) |
|
H.264 AVC Perfil principal (MP) |
Android 6.0 ou mais recente | SIM | O decodificador é obrigatório, o codificador é recomendado. | |
H.265 HEVC | Android 5.0 ou mais recente | Nível 3 do perfil principal para dispositivos móveis e nível 4.1 do perfil principal para Android TV |
• MPEG-4 (.mp4) • Matroska (.mkv) |
|
MPEG-4 SP | SIM | 3GPP (.3gp) | ||
VP8 | Android 4.3 ou superior | Android 2.3.3 ou superior | Streaming possível apenas no Android 4.0 e versões posteriores. |
• WebM (.webm) • Matroska (.mkv, Android 4.0+) |
VP9 | Android 4.4 ou superior |
• WebM (.webm) • Matroska (.mkv) |
||
AV1 | Android 14 ou mais recente | Android 10 e versões mais recentes | O codificador e o decodificador são obrigatórios a partir do Android 14. |
• MPEG-4 (.mp4) • Matroska (.mkv) |
Recomendações de codificação de vídeo
A tabela abaixo lista os perfis e parâmetros de codificação de vídeo do framework de mídia do Android recomendados para reprodução usando o codec do perfil de referência H.264. As mesmas recomendações se aplicam ao codec do perfil principal, que só está disponível no Android 6.0 e versões mais recentes.
SD (baixa qualidade) | SD (alta qualidade) | HD 720p (N/A em todos os dispositivos) | |
---|---|---|---|
Resolução do vídeo | 176 x 144 px | 480 x 360 px | 1.280 x 720 px |
Frame rate do vídeo | 12 fps | 30 fps | 30 fps |
Taxa de bits do vídeo | 56 Kbps | 500 Kbps | 2 Mbps |
Codec de áudio | AAC-LC | AAC-LC | AAC-LC |
Canais de áudio | 1 (mono) | 2 (estéreo) | 2 (estéreo) |
Taxa de bits do áudio | 24 Kbps | 128 Kbps | 192 Kbps |
A tabela abaixo lista os perfis e parâmetros de codificação de vídeo do framework de mídia do Android recomendados para reprodução usando o codec de mídia VP8.
SD (baixa qualidade) | SD (alta qualidade) | HD 720p (N/A em todos os dispositivos) | HD 1.080p (N/A em todos os dispositivos) | |
---|---|---|---|---|
Resolução do vídeo | 320 x 180 px | 640 x 360 px | 1.280 x 720 px | 1.920 x 1.080 px |
Frame rate do vídeo | 30 fps | 30 fps | 30 fps | 30 fps |
Taxa de bits do vídeo | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
Recomendações de decodificação de vídeo
As implementações de dispositivos precisam oferecer suporte à resolução de vídeo dinâmica e à alternância de frame rate usando as APIs padrão do Android no mesmo fluxo para todos os codecs VP8, VP9, H.264 e H.265 em tempo real e até a resolução máxima compatível com cada codec no dispositivo.
As implementações compatíveis com o decodificador Dolby Vision precisam seguir estas diretrizes:
- Fornecer um extrator compatível com Dolby Vision.
- Exibir corretamente o conteúdo do Dolby Vision na tela do dispositivo ou em uma porta de saída de vídeo padrão (por exemplo, HDMI.
- Defina o índice de faixa das camadas de base compatíveis com versões anteriores (se houver) para que ele seja igual ao índice de faixa combinado da camada Dolby Vision.
Requisitos de stream de vídeo
Para conteúdo de vídeo transmitido por HTTP ou RTSP, há mais requisitos:
- Para contêineres 3GPP e MPEG-4, o átomo
moov
precisa preceder qualquer átomomdat
, mas suceder o átomoftyp
. - Para os contêineres 3GPP, MPEG-4 e WebM, as amostras de áudio e vídeo correspondentes ao mesmo ajuste de horário não podem estar a mais de 500 KB de distância. Para minimizar esse deslocamento de áudio/vídeo, intercale áudio e vídeo em tamanhos menores.
Compatibilidade de imagem
Formato | Codificador | Decodificador | Detalhes | Tipos de arquivo Formatos de contêiner |
---|---|---|---|---|
BMP | SIM | BMP (.bmp) | ||
GIF | SIM | GIF (.gif) | ||
JPEG | SIM | SIM | Básico+progressivo | JPEG (.jpg) |
PNG | SIM | SIM | PNG (.png) | |
WebP |
Android 4.0+ Sem perdas: Android 10+ Transparência: Android 4.2.1+ |
Android 4.0+ Sem perdas: Android 4.2.1+ Transparência: Android 4.2.1+ |
A codificação sem perda pode ser alcançada no Android 10 usando uma qualidade 100. | WebP (.webp) |
HEIF | Android 8.0 ou posterior | HEIF (.heic; .heif) | ||
AVIF (perfil de referência) | Android 14 ou mais recente | Android 14 ou mais recente | O codificador e o decodificador são obrigatórios a partir do Android 14. | AVIF (.avif) |
Protocolos de rede
Os seguintes protocolos de rede são compatíveis com a reprodução de áudio e vídeo:
- RTSP (RTP, SDP)
- Streaming progressivo HTTP/HTTPS
- Protocolo de rascunho (em inglês) do HTTP/HTTP Live Streaming:
- Somente arquivos de mídia TS MPEG-2
- Protocolo versão 3 Android 4.0 e superior
- Protocolo versão 2 Android 3.x
- Não compatível com versões anteriores ao Android 3.0
Observação: HTTPS não é compatível com versões anteriores ao Android 3.1.
Formatos de vídeo HDR
Os OEMs podem ativar qualquer formato HDR que escolherem com a arquitetura HDR do Android, que oferece as principais necessidades dos formatos HDR: buffers de 10 bits, metadados (estáticos, dinâmicos e nenhum), função de transferência e gerenciamento de espaço de cor.
Para garantir a consistência para os desenvolvedores e atender aos principais casos de uso de HDR, exigimos que os OEMs ofereçam suporte a alguns formatos básicos em dispositivos com suporte a HDR:
- Para a reprodução de conteúdo profissional, como streaming de filmes, exigimos HDR10.
- Para captura e reprodução de conteúdo gerado pelo usuário, exigimos que o HLG10 ofereça uma experiência consistente em todos os dispositivos Android.
Os OEMs que adicionam suporte a HDR precisam oferecer suporte a esses formatos, mas também podem oferecer suporte a outros formatos, como HDR10+ ou Dolby Vision.
Formato | Função de transferência | Metadados | Codec | Profundidade de bit |
---|---|---|---|---|
Hl 10 | HLG | Não | HVEC | 10 bits |
HDR10 | PQ | Estático | HVEC | 10 bits |
HDR10+ | PQ | Estático | HVEC | 10 bits |
Dolby Vision 8.4 | HLG | Dinâmico | HVEC | 10 bits |
Recomendações sobre o processamento de formatos
Formato de captura | Formato de upload | Formato de envio |
HLG | Suporte do back-end do app a HLG HDR | Dispositivos compatíveis com HDR (HLG):
HLG Dispositivos com suporte a HDR (sem suporte a HLG somente PQ): SDR (mapa de tons de HLG para SDR no back-end) Dispositivos sem suporte a HDR: SDR (mapa de tons de HLG para SDR no back-end) |
Caso de uso 2: captura ou importação nativa da câmera da galeria do usuário (o back-end do app oferece suporte a HDR)
Formato de captura | Formato de upload | Formato de envio |
HLG | HLG | Igual ao caso de uso de captura no app |
HDR10+ | HLG
Mapa de tons de HDR10+ (PQ) para HLG antes do upload usando APIs de transformador |
Igual ao caso de uso de captura no app |
DV8.4 | HLG
O DV8.4 usa HLG, e o bitstream se comporta como HLG. Por isso, o mapeamento de tom não é necessário. |
Igual ao caso de uso de captura no app |
Caso de uso 3: o back-end do app não oferece suporte a HDR
Formato de captura | Formato de upload | Formato de envio |
Qualquer formato | SDR
Mapa de tons de HLG para SDR antes do upload usando APIs de transformador |
SDR |