Formatos de mídia aceitos

Este documento descreve a compatibilidade do codec de mídia, contêiner e protocolo de rede oferecidos pela plataforma Android.

As tabelas abaixo descrevem a compatibilidade de formatos de mídia integrada à plataforma Android. SIM 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 smartphones e tablets que executam 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 diferentes de smartphones 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 compatíveis.

Compatibilidade de áudio

Formato Codificador Decodificador Formatos de contêiner de tipos de arquivos Detalhes
Extrator Multiplexador
AAC LC SIM SIM • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF não é compatível)
• MPEG-TS (.ts, não pesquisável, Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF não é compatível)
• MPEG-TS (não tenho certeza) (.ts, não pesquisável, Android 3.0+)
Compatível com conteúdo mono/estéreo/5.0/5.1 com taxas de amostragem padrão de 8 a 48 kHz.
HE-AACv1 (AAC+) Android 4.1 ou mais recente SIM
HE-AACv2 (AAC+ aprimorado)   SIM Compatível com conteúdo estéreo/5.0/5.1 com taxas de amostragem padrão de 8 a 48 kHz.
xHE-AAC   Android 9 ou mais recente Suporte para conteúdo de até 8 canais com taxas de amostragem padrão de 8 a 48 kHz.
AAC ELD (AAC aprimorado com atraso baixo) Android 4.1 ou mais recente Android 4.1 ou mais recente Suporte a conteúdo mono/estéreo com taxas de amostragem padrão de 16 a 48 kHz.
AMR-NB SIM SIM • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75 a 12,2 kbps com amostragem a 8 kHz.
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 mais recente Android 3.1 ou mais recente • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv)
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 redutor de 48 para 44,1 kHz não inclui um filtro passa baixa). Recomendação de 16 bits; sem pontilhamento aplicado para 24 bits.
MIDI   SIM • Tipo 0 e 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
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.
MP3   SIM • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
Taxa de bits mono/estéreo constante (CBR) ou variável (VBR) de 8-320 kbps.
Opus Android 10 ou mais recente Android 5.0 ou mais recente • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 ou mais recente SIM WAVE (.wav) PCM linear de 8 e 16 bits (taxas até o limite de hardware). Taxas de amostragem para gravações PCM RAW em 8.000, 16.000 e 44.100 Hz.
Vorbis   SIM • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)
• MPEG-4 (.mp4, .m4a, Android 10+)
WebM (.webm)  

Compatibilidade de vídeo

Formatos de vídeo

Formato Codificador Decodificador Formatos de contêiner de tipos de arquivos Detalhes
Extrator Multiplexador
H.263 SIM SIM • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
A compatibilidade com H.263 é opcional no Android 7.0+
H.264 AVC
Perfil de referência (BP)
Android 3.0 ou superior SIM • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, AAC exclusivo de áudio, não pesquisável, Android 3.0+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
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 • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Nível 3 do perfil principal para dispositivos móveis e nível 4.1 do perfil principal para Android TV
MPEG-4 SP   SIM • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 ou mais recente Android 2.3.3 ou mais recente WebM (.webm)
• Matroska (.mkv, Android 4.0+)
WebM (.webm) Streaming possível apenas no Android 4.0 e versões posteriores.
VP9 Android 4.4 ou mais recente WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
WebM (.webm)
AV1 Android 14 ou mais recente Android 10 ou mais recente • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) O codificador e o decodificador são obrigatórios a partir do Android 14.
APV Android 16 ou mais recente Android 16 ou mais recente • MPEG-4 (.mp4) • MPEG-4 (.mp4) O codificador e o decodificador são obrigatórios a partir do Android 16.

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 de perfil de referência H.264. As mesmas recomendações são válidas para o codec de perfil principal, que está disponível apenas 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 com 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 ser compatíveis com a resolução dinâmica de vídeo e a alternância de frame rate por meio das APIs padrão do Android no mesmo fluxo para todos os codecs VP8, VP9, H.264 e H.265 em tempo real e com 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 com tecnologia 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, como HDMI.
  • Definir o índice de faixa das camadas básicas compatíveis com versões anteriores (se houver) para que ele seja igual ao índice de faixa da camada Dolby Vision combinada.

Requisitos de stream de vídeo

Para conteúdo de vídeo transmitido por HTTP ou RTSP, há mais requisitos:

  • Para os 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 perda: Android 10+
Transparência: Android 4.2.1+
Android 4.0+
Sem perda: Android 4.2.1+
Transparência: Android 4.2.1+
A codificação sem perdas pode ser alcançada no Android 10 usando uma qualidade de 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 mais recentes
    • 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 com a arquitetura HDR do Android, que oferece as necessidades principais dos formatos HDR: buffers de 10 bits, metadados (estáticos, dinâmicos e nenhum), função de transferência e processamento de espaço de cores.

Para garantir a consistência para os desenvolvedores e abordar os 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 filmes em streaming, é necessário HDR10.
  • Para a 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
HLG10 HLG Não HEVC 10 bits
HDR10 PQ Estático HEVC 10 bits
HDR10+ PQ Estático HEVC 10 bits
Dolby Vision 8.4 HLG Dinâmico HEVC 10 bits

Formatar recomendações de processamento

Formato da captura Formato de upload Formato da entrega
HLG Suporte de back-end do app para HDR HLG Dispositivos com suporte a HDR (HLG):

HLG

Dispositivos com suporte a HDR (sem suporte a HLG, apenas PQ):

SDR (mapeamento de tons do HLG para SDR no back-end)

Dispositivos que não oferecem suporte a HDR: SDR (mapeamento de tons de HLG para SDR no back-end)

Caso de uso 2: captura nativa da câmera ou importação da galeria do usuário (o back-end do app oferece suporte a HDR)

Formato da captura Formato de upload Formato da entrega
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 fluxo de bits se comporta como HLG, portanto, não é necessário fazer mapeamento de tons.

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 da captura Formato de upload Formato da entrega
Qualquer formato SDR

Mapa de tons de HLG para SDR antes do upload usando APIs de transformador

SDR