Formatos de medios 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.

Como desarrollador de aplicaciones, puedes usar cualquier códec disponible en dispositivos con Android, tanto los proporcionados por plataforma de Android como los de plataformas específicas del dispositivo. Sin embargo, se recomienda usar perfiles de codificación de medios que se puedan usar en cualquier dispositivo.

En las tablas que se muestran a continuación, se describe el soporte de formatos de medios integrado en la plataforma de Android. Los códecs cuya disponibilidad no está garantizada en todas las versiones de la plataforma de Android se indican entre paréntesis, por ejemplo: (Android 3.0 o posterior). Ten en cuenta que cualquier dispositivo móvil puede admitir otros formatos o tipos de archivo que no se enumeran en la tabla.

En la sección 5 de la Definición de compatibilidad de Android, se especifican los formatos de medios que un dispositivo debe admitir para ser compatible con Android 8.1.

Compatibilidad con audio

Formatos y códecs de audio

Formato/códec Codificador Decodificador Detalles Formatos de tipos de archivo/contenedores compatibles
AAC LC Compatibilidad con contenido mono/estéreo/5.0/5.1 con tasas de muestreo estándar de 8 a 48 kHz. • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, decodificación en Android 3.1+, codificación en Android 4.0+, ADIF no es compatible)
• MPEG-TS (.ts, no admite búsquedas, Android 3.0+)
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.
AAC ELD (AAC mejorado de bajo retraso)
(Android 4.1 y versiones posteriores)

(Android 4.1 y versiones posteriores)
Soporte para contenido mono/estéreo con tasas de muestreo estándar de 16 a 48 kHz
AMR-NB 4.75 a 12.2 kbps con muestreo a 8 kHz 3GPP (.3gp)
AMR-WB 9 tasas de 6.60 kbit/s a 23.85 kbit/s con muestreo a 16 kHz 3GPP (.3gp)
FLAC
(Android 4.1 y versiones posteriores)

(Android 3.1 y versiones posteriores)
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. FLAC (.flac) únicamente
GSM   Android admite la decodificación GSM en dispositivos de telefonía. GSM (.gsm)
MIDI   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. • Tipo 0 y 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MP3   Tasa de bits constante (CBR) o variable (VBR) mono/estéreo de 8 a 320 Kbps. MP3 (.mp3)
Opus
(Android 5.0 y versiones posteriores)
Matroska (.mkv)
PCM/WAVE
(Android 4.1 y versiones posteriores)
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. WAVE (.wav)
Vorbis     • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 y versiones posteriores)

Compatibilidad con video

Formatos y códecs de video

Formato/códec Codificador Decodificador Detalles Formatos de tipos de archivo/contenedores compatibles
H.263 La compatibilidad con H.263 es opcional en Android 7.0 y versiones posteriores • 3GPP (.3gp)
• MPEG-4 (.mp4)
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)
Perfil principal (MP)
de H.264 AVC

(Android 6.0 y versiones posteriores)
Se requiere usar decodificador y se recomienda usar codificador.
H.265 HEVC
(Android 5.0 y versiones posteriores)
Perfil principal nivel 3 para dispositivos móviles y perfil principal nivel 4.1 para Android TV • MPEG-4 (.mp4)
MPEG-4 SP     3GPP (.3gp)
VP8
(Android 4.3 y versiones posteriores)

(Android 2.3.3 y versiones posteriores)
Transmitible solo en Android 4.0 y versiones posteriores WebM (.webm)
• Matroska (.mkv, Android 4.0 y versiones posteriores)
VP9
(Android 4.4 y versiones posteriores)
WebM (.webm)
• Matroska (.mkv, Android 4.0 y versiones posteriores)

Recomendaciones sobre codificación de video

En la siguiente tabla, se enumeran los perfiles y parámetros de codificación de video del marco de trabajo de medios de Android recomendados para la reproducción utilizando 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 marco de trabajo 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).
  • Establecer 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 atom moov debe estar antes de cualquier atom mdat, pero después del atom 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/códec Codificador Decodificador Detalles Formatos de tipos de archivo/contenedores compatibles
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, transparencia, Android 4.2.1 y versiones posteriores)

(Android 4.0 y versiones posteriores)
(Sin pérdida, transparencia, Android 4.2.1 y versiones posteriores)
  WebP (.webp)
HEIF  
(Android 8.0 y versiones posteriores)
  HEIF (.heic; .heif)

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 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.