Formatos de mídia compatíveis

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)
• MPEG-4 (.mp4, .m4a)
• 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 átomo mdat, mas suceder o átomo ftyp.
  • 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