Formatos multimedia compatibles

En este documento, se describe el códec de medios, el contenedor y la compatibilidad con el protocolo de red que proporciona la plataforma de Android.

En las tablas que se muestran a continuación, se describe el soporte de formatos de medios integrado en la plataforma de Android. SÍ significa que el formato está disponible en dispositivos portátiles y tablets que ejecutan todas las versiones de Android. Cuando se especifica una plataforma de Android específica, el formato está disponible en teléfonos y tablets que ejecutan esa versión y todas las versiones posteriores. Es posible que el formato también esté disponible en versiones anteriores, pero esto no está garantizado. En factores de forma distintos de los teléfonos celulares y las tablets, la compatibilidad con los formatos de contenido multimedia puede variar.

Ten en cuenta que un dispositivo móvil en particular puede admitir formatos o tipos de archivo adicionales que no se enumeran en estas tablas. Además, si usas un MediaCodec directamente, puedes acceder a cualquiera de los formatos multimedia disponibles, independientemente de los tipos de archivos y formatos de contenedor compatibles.

Compatibilidad con audio

Formato Codificador Decodificador Formatos de contenedor de tipos de archivo Detalles
Extractor Combinador
AAC LC • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• AAC sin procesar de ADTS (.aac, no se admite ADIF)
• MPEG-TS (.ts, no admite búsquedas, Android 3.0 y versiones posteriores)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• AAC sin procesar de ADTS (.aac, no se admite ADIF)
• MPEG-TS (no estoy seguro) (.ts, no admite búsquedas, Android 3.0 y versiones posteriores)
Compatibilidad con contenido mono/estéreo/5.0/5.1 con tasas de muestreo estándar de 8 a 48 kHz.
HE-AACv1 (AAC+) Android 4.1 y versiones posteriores
HE-AACv2 (AAC+ mejorado)   Compatibilidad con contenido estéreo/5.0/5.1 con tasas de muestreo estándar de entre 8 y 48 kHz.
xHE-AAC   Android 9 y versiones posteriores Compatibilidad con contenido de hasta 8 canales con tasas de muestreo estándar de 8 a 48 kHz
AAC ELD (AAC mejorado de bajo retraso) Android 4.1 y versiones posteriores Android 4.1 y versiones posteriores Compatibilidad con contenido mono/estéreo con tasas de muestreo estándar de 16 a 48 kHz
AMR-NB • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4.75 a 12.2 kbps con muestreo a 8 kHz
AMR-WB 9 tasas de 6.60 kbit/s a 23.85 kbit/s con muestreo a 16 kHz
FLAC Android 4.1 y versiones posteriores Android 3.1 y versiones posteriores • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 y versiones posteriores)
• Matroska (.mkv)
Mono/estéreo (sin multicanal). Tasas de muestreo de hasta 48 kHz (pero se recomienda hasta 44.1 kHz en dispositivos con salida de 44.1 kHz, ya que el reductor de muestreo de 48 a 44.1 kHz no incluye un filtro de paso bajo). Se recomienda 16 bits. No se aplicó ninguna interpolación para 24 bits.
MIDI   • Tipo 0 y 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI tipo 0 y 1. Versión 1 y 2 de DLS. XMF y Mobile XMF. Compatibilidad con los formatos de tono RTTTL/RTX, OTA y iMelody.
MP3   • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 y versiones posteriores)
• Matroska (.mkv, Android 10 y versiones posteriores)
Tasa de bits constante (CBR) o variable (VBR) mono/estéreo de 8 a 320 Kbps.
Opus Android 10 y versiones posteriores Android 5.0 y versiones posteriores • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 y versiones posteriores WAVE (.wav) MIC lineal de 8 y 16 bits (el límite de las tasas depende del hardware). Tasas de muestreo para grabaciones de MIC sin procesar a 8,000; 16,000; y 44,100 Hz.
Vorbis   • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 y versiones posteriores)
• MPEG-4 (.mp4, .m4a, Android 10 y versiones posteriores)
WebM (.webm)  

Compatibilidad con video

Formatos de video

Formato Codificador Decodificador Formatos de contenedor de tipos de archivo Detalles
Extractor Combinador
H.263 • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
La compatibilidad con H.263 es opcional en Android 7.0 y versiones posteriores
Perfil básico (BP)
de H.264 AVC
Android 3.0 y versiones posteriores • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, AAC solo de audio, no admite búsquedas, Android 3.0 y versiones posteriores)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Perfil principal (MP)
de H.264 AVC
Android 6.0 o versiones posteriores Se requiere usar decodificador y se recomienda usar codificador.
H.265 HEVC Android 5.0 y versiones posteriores • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Perfil principal nivel 3 para dispositivos móviles y perfil principal nivel 4.1 para Android TV
MPEG-4 SP   • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 y versiones posteriores Android 2.3.3 y versiones posteriores WebM (.webm)
• Matroska (.mkv, Android 4.0 y versiones posteriores)
WebM (.webm) Transmitible solo en Android 4.0 y versiones posteriores
VP9 Android 4.4 y versiones posteriores WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
WebM (.webm)
AV1 Android 14 y versiones posteriores Android 10 y versiones posteriores • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) El codificador y el decodificador son obligatorios a partir de Android 14.
APV Android 16 y versiones posteriores Android 16 y versiones posteriores • MPEG-4 (.mp4) • MPEG-4 (.mp4) El codificador y el decodificador son obligatorios a partir de Android 16.

Recomendaciones sobre codificación de video

En la siguiente tabla, se enumeran los perfiles y parámetros de codificación de video del framework de medios de Android recomendados para la reproducción con el códec de perfil básico de H.264. Las mismas recomendaciones se aplican al códec de perfil principal, que solo está disponible en Android 6.0 y versiones posteriores.

  SD (baja calidad) SD (alta calidad) HD 720p (N/A en todos los dispositivos)
Resolución de video 176 x 144 px 480 x 360 px 1280 x 720 px
Velocidad de fotogramas del video 12 fps 30 fps 30 fps
Tasa de bits del video 56 Kbps 500 Kbps 2 Mbps
Códec de audio AAC-LC AAC-LC AAC-LC
Canales de audio 1 (mono) 2 (estéreo) 2 (estéreo)
Tasa de bits del audio 24 Kbps 128 Kbps 192 Kbps

En la siguiente tabla, se enumeran los perfiles y parámetros de codificación de video del framework de medios de Android recomendados para la reproducción con el códec de medios VP8.

  SD (baja calidad) SD (alta calidad) HD 720p (N/A en todos los dispositivos) HD 1080p (N/A en todos los dispositivos)
Resolución de video 320 x 180 px 640 x 360 px 1280 x 720 px 1920 x 1080 px
Velocidad de fotogramas del video 30 fps 30 fps 30 fps 30 fps
Tasa de bits del video 800 Kbps 2 Mbps 4 Mbps 10 Mbps

Recomendaciones para la decodificación de video

Las implementaciones de dispositivos deben admitir resolución de video dinámica y cambio de velocidad de fotogramas en API estándar dentro de la misma transmisión para todos los códecs VP8, VP9, H.264 y H.265 en tiempo real, y hasta la resolución máxima admitida por cada códec del dispositivo.

Las implementaciones compatibles con el decodificador Dolby Vision deben seguir estas pautas:

  • Proporcionar un extractor compatible con Dolby Vision
  • Mostrar correctamente el contenido de Dolby Vision en la pantalla del dispositivo o en un puerto de salida de video estándar (por ejemplo, HDMI).
  • Establece el índice de seguimiento de las capas básicas retrocompatibles (si las hay) de modo que sea igual al índice de seguimiento de la capa combinada de Dolby Vision.

Requisitos de transmisión de video

Para el contenido de video que se transmite por HTTP o RTSP, hay requisitos adicionales:

  • Para los contenedores 3GPP y MPEG-4, el átomo moov debe estar antes de cualquier átomo mdat, pero después del átomo ftyp.
  • En el caso de los contenedores 3GPP, MPEG-4 y WebM, las muestras de audio y video que corresponden a la misma compensación horaria no pueden tener una diferencia de más de 500 KB. Para minimizar esta diferencia de audio/video, considera intercalar audio y video en tamaños más pequeños.

Compatibilidad con imágenes

Formato Codificador Decodificador Detalles Tipos de archivos
Formatos de contenedor
BMP     BMP (.bmp)
GIF     GIF (.gif)
JPEG Básica + progresiva JPEG (.jpg)
PNG   PNG (.png)
WebP Android 4.0 y versiones posteriores
Sin pérdida: Android 10 y versiones posteriores
Transparencia: Android 4.2.1 y versiones posteriores
Android 4.0 y versiones posteriores
Sin pérdida: Android 4.2.1 y versiones posteriores
Transparencia: Android 4.2.1 y versiones posteriores
En Android 10, se puede lograr una codificación sin pérdidas con una calidad de 100. WebP (.webp)
HEIF   Android 8.0 y versiones posteriores   HEIF (.heic; .heif)
AVIF (perfil de Baseline) Android 14 y versiones posteriores Android 14 y versiones posteriores El codificador y el decodificador son obligatorios a partir de Android 14. AVIF (.avif)

Protocolos de red

Los siguientes protocolos de red son compatibles con la reproducción de audio y video:

  • RTSP (RTP, SDP)
  • Transmisión progresiva de HTTP/HTTPS
  • Protocolo proyectado para HTTP/HTTPS Live Streaming:
    • Solo archivos multimedia MPEG-2 TS
    • Protocolo versión 3 (Android 4.0 y versiones posteriores)
    • Protocolo versión 2 (Android 3.x)
    • No compatible con versiones anteriores a Android 3.0

Nota: HTTPS no es compatible con Android 3.1.

Formatos de video HDR

Los OEMs pueden habilitar cualquier formato HDR que elijan con la arquitectura HDR de Android, que proporciona las necesidades principales de los formatos HDR: búferes de 10 bits, metadatos (estáticos, dinámicos y ninguno), función de transferencia y control del espacio de color.

Para garantizar la coherencia para los desarrolladores y abordar los casos de uso clave de HDR, exigimos que los OEM admitan algunos formatos básicos en los dispositivos que admiten HDR:

  • Para la reproducción de contenido profesional, como películas en transmisión, requerimos HDR10.
  • Para la captura y reproducción de contenido generado por usuarios, requerimos HLG10 para brindar una experiencia coherente en todos los dispositivos Android.

Los OEMs que agregan compatibilidad con HDR deben admitir estos formatos, pero también pueden admitir formatos adicionales, como HDR10+ o Dolby Vision.

Formato Función de transferencia Metadatos Códec Profundidad de bits
HLG10 HLG No 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

Recomendaciones de control de formato

Formato de captura Formato de carga Formato de entrega
HLG Compatibilidad del backend de la app con HDR HLG Dispositivos compatibles con HDR (HLG):

HLG

Dispositivos compatibles con HDR (sin compatibilidad con HLG, solo PQ):

SDR (asignación de tono de HLG a SDR en el backend)

Dispositivos que no son compatibles con HDR: SDR (asignación de tono de HLG a SDR en el backend)

Caso de uso 2: Captura con la cámara nativa o importación desde la galería del usuario (el backend de la app admite HDR)

Formato de captura Formato de carga Formato de entrega
HLG HLG Igual que el caso de uso de captura en la app
HDR10+ HLG

Crea un mapa de tonos de HDR10+ (PQ) a HLG antes de subirlo con las APIs de transformadores

Igual que el caso de uso de captura en la app
DV8.4 HLG

(DV8.4 usa HLG y el flujo de bits se comportará como HLG, por lo que no se requiere la asignación de tonos).

Igual que el caso de uso de captura en la app

Caso de uso 3: El backend de la app no es compatible con HDR

Formato de captura Formato de carga Formato de entrega
Cualquier formato SDR

Crea un mapa de tonos de HLG a SDR antes de subirlo con las APIs de transformadores

SDR