Поддерживаемые мультимедийные форматы

В этом документе описаны поддерживаемые платформой Android медиакодеки, контейнеры и сетевые протоколы.

В таблицах ниже описана поддержка медиаформатов, встроенная в платформу Android. Да – формат доступен на мобильных устройствах и планшетах с любой версией Android. Если указана определенная платформа Android, формат доступен на телефонах и планшетах с этой и более поздними версиями. Формат может быть доступен и в более ранних версиях, но это не гарантируется. На устройствах других типов поддержка форматов мультимедиа может отличаться.

Обратите внимание, что некоторые мобильные устройства могут поддерживать дополнительные форматы или типы файлов, не указанные в этих таблицах. Кроме того, если вы используете MediaCodec напрямую, то можете получить доступ к любому из доступных медиаформатов независимо от поддерживаемых типов файлов и форматов контейнеров.

Функции для людей с нарушениями слуха

Формат Видеокодер Декодер Типы файлов и форматы контейнеров Сведения
Экстрактор Мультиплексор
AAC LC ДА ДА • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF не поддерживается)
• MPEG-TS (.ts, не поддерживается перемотка, Android 3.0 и более поздние версии)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF not supported)
• MPEG-TS (not sure) (.ts, not seekable, Android 3.0+)
Поддержка моно-, стерео- и 5.0/5.1-контента со стандартной частотой дискретизации от 8 до 48 кГц.
HE-AACv1 (AAC+) Android 4.1 и более поздние версии ДА
HE-AACv2 (улучшенный AAC+)   ДА Поддержка стереоконтента, а также контента 5.0 и 5.1 со стандартной частотой дискретизации от 8 до 48 кГц.
xHE-AAC   Android 9 и более поздние версии Поддержка контента с количеством каналов до 8 и стандартной частотой дискретизации от 8 до 48 кГц.
AAC ELD (улучшенный AAC с низкой задержкой) Android 4.1 и более поздние версии Android 4.1 и более поздние версии Поддержка моно- и стереоконтента со стандартной частотой дискретизации от 16 до 48 кГц.
AMR-NB ДА ДА • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75–12,2 кбит/с, частота дискретизации 8 кГц
AMR-WB ДА ДА 9 вариантов скорости передачи данных от 6,60 до 23,85 кбит/с с частотой дискретизации 16 кГц.
FLAC Android 4.1 и более поздние версии Android 3.1 и более поздние версии • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv)
Моно/стерео (без многоканального звука). Частота дискретизации до 48 кГц (но на устройствах с выходной частотой 44,1 кГц рекомендуется использовать частоту до 44,1 кГц, так как понижающий преобразователь частоты дискретизации с 48 до 44,1 кГц не включает фильтр нижних частот). Рекомендуется 16 бит; для 24 бит сглаживание не применяется.
MIDI   ДА • Тип 0 и 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI типа 0 и 1. DLS версии 1 и 2. XMF и Mobile XMF. Поддержка форматов мелодий RTTTL/RTX, OTA и iMelody.
MP3   ДА • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
Моно/стерео, постоянный битрейт (CBR) или переменный битрейт (VBR) 8–320 кбит/с
Opus Android 10 и более поздние версии Android 5.0 и более поздние версии • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
• WebM (.webm)
PCM/WAVE Android 4.1 и более поздние версии ДА WAVE (.wav) 8- и 16-битный линейный PCM (частота дискретизации зависит от аппаратного обеспечения). Частота дискретизации для записей PCM: 8000, 16 000 и 44 100 Гц.
Vorbis   ДА • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)
• MPEG-4 (.mp4, .m4a, Android 10+)
• WebM (.webm)  

Поддержка видео

Форматы видео

Формат Видеокодер Декодер Типы файлов и форматы контейнеров Сведения
Экстрактор Мультиплексор
H.263 ДА ДА • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Поддержка H.263 в Android 7.0 и более поздних версиях необязательна
H.264 AVC
профиль базовой конфигурации (BP)
Android 3.0+ ДА • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, только аудио AAC, нельзя перемотать, Android 3.0+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Main Profile (MP)
Android 6.0 и более поздние версии ДА Декодер обязателен, а кодер рекомендуется.
H.265 HEVC Android 5.0 и более поздние версии • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Основной профиль уровня 3 для мобильных устройств и основной профиль уровня 4.1 для Android TV
MPEG-4 SP   ДА • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 и более поздние версии Android 2.3.3 и более поздние версии • WebM (.webm)
• Matroska (.mkv, Android 4.0+)
• WebM (.webm) Трансляция доступна только на устройствах с Android 4.0 и более поздних версий
VP9 Android 4.4 или более поздней версии • WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
• WebM (.webm)
AV1; Android 14 и более поздние версии Android 10 и более поздние версии • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Начиная с Android 14 кодер и декодер являются обязательными.
APV Android 16+ Android 16+ • MPEG-4 (.mp4) • MPEG-4 (.mp4) Начиная с Android 16 кодер и декодер обязательны.

Рекомендации по кодированию видео

В таблице ниже перечислены профили и параметры кодирования видео фреймворка Android для медиа, рекомендованные для воспроизведения с помощью кодека H.264 профиля базовой конфигурации. Те же рекомендации применимы к кодеку Main Profile, который доступен только в Android 6.0 и более поздних версий.

  SD (низкое качество) SD (высокое качество) HD 720p (недоступно на всех устройствах)
Разрешение видео 176 x 144 пкс 480 x 360 пикс. 1280 x 720 пикселей
Частота кадров видео 12 кадр/с 30 кадров в секунду 30 кадров в секунду
Битрейт 56 кбит/с 500 кбит/с 2 Мбит/с
Аудиокодек AAC-LC AAC-LC AAC-LC
Аудиоканалы 1 (моно) 2 (стерео) 2 (стерео)
Скорость передачи данных аудио 24 кбит/с 128 кбит/с 192 кбит/с

В таблице ниже перечислены профили кодирования видео и параметры медиафреймворка Android, рекомендованные для воспроизведения с помощью медиакодека VP8.

  SD (низкое качество) SD (высокое качество) HD 720p (недоступно на всех устройствах) HD 1080p (недоступно на всех устройствах)
Разрешение видео 320 x 180 пикс. 640 x 360 пкс 1280 x 720 пикселей 1920 x 1080 пикс.
Частота кадров видео 30 кадров в секунду 30 кадров в секунду 30 кадров в секунду 30 кадров в секунду
Битрейт 800 кбит/с 2 Мбит/с 4 Мбит/c 10 Мбит/c

Рекомендации по декодированию видео

Реализации устройств должны поддерживать динамическое переключение разрешения видео и частоты кадров с помощью стандартных API Android в рамках одного потока для всех кодеков VP8, VP9, H.264 и H.265 в реальном времени и до максимального разрешения, поддерживаемого каждым кодеком на устройстве.

Реализации, поддерживающие декодер Dolby Vision, должны соответствовать следующим требованиям:

  • Используйте экстрактор с поддержкой Dolby Vision.
  • Правильно отображать контент Dolby Vision на экране устройства или на стандартном видеовыходе (например, HDMI).
  • Установите для индекса дорожки базового слоя с обратной совместимостью (если он есть) то же значение, что и для индекса дорожки комбинированного слоя Dolby Vision.

Требования к потоковому видео

Для видеоконтента, который передается по протоколам HTTP или RTSP, действуют дополнительные требования:

  • В контейнерах 3GPP и MPEG-4 атом moov должен предшествовать всем атомам mdat, но следовать за атомом ftyp.
  • Для контейнеров 3GPP, MPEG-4 и WebM разница между размерами аудио- и видеосэмплов, соответствующих одному и тому же смещению по времени, не должна превышать 500 КБ. Чтобы свести к минимуму расхождение аудио и видео, попробуйте чередовать их небольшими фрагментами.

Поддержка изображений

Формат Видеокодер Декодер Сведения Типы файлов
Форматы контейнеров
BMP   ДА   BMP (.bmp);
GIF   ДА   GIF (.gif);
JPEG ДА ДА Базовый + прогрессивный JPEG (.jpg)
PNG ДА ДА   PNG (.png);
WebP Android 4.0 и более поздние версии
Без потерь: Android 10 и более поздние версии
Прозрачность: Android 4.2.1 и более поздние версии
Android 4.0 и более поздние версии
Без потерь: Android 4.2.1 и более поздние версии
Прозрачность: Android 4.2.1 и более поздние версии
В Android 10 можно использовать кодирование без потерь, установив качество на уровне 100. WebP (.webp);
HEIF Android 10 и более поздние версии
(через MediaCodec или HeifWriter; не в Bitmap.compress)
Android 9.0 и более поздние версии Устройство не обязательно. Узнайте, поддерживает ли 8-битный цвет ImageDecoder.isMimeTypeSupported("image/heif"). Для 10-битного декодирования требуется дополнительный профиль HEVC Main10. HEIF (.heic, .heif)
AVIF (профиль базовой конфигурации) Android 14 и более поздние версии
(через MediaCodec; не в Bitmap.compress)
Android 12 и более поздние версии 8-битное декодирование поддерживается в Android 12 и более поздних версиях. 10-битное декодирование является необязательным. Чтобы узнать, поддерживается ли оно, проверьте значение ImageDecoder.isMimeTypeSupported("image/avif") (даже если оно ложно, 8-битное декодирование будет работать). AVIF (.avif)

Сетевые протоколы

Для воспроизведения аудио- и видеоконтента поддерживаются следующие сетевые протоколы:

  • RTSP (RTP, SDP)
  • Потоковая передача данных по HTTP/HTTPS
  • Протокол для потоковой передачи данных по HTTP/HTTPS (черновик):
    • только медиафайлы MPEG-2 TS;
    • Протокол версии 3, Android 4.0 и более поздние версии
    • Протокол версии 2, Android 3.x
    • Не поддерживается в версиях Android ниже 3.0

Примечание. HTTPS не поддерживается в версиях Android ниже 3.1.

Форматы HDR-видео

Производители устройств могут включить любой формат HDR, используя архитектуру Android HDR, которая обеспечивает основные потребности форматов HDR: 10-битные буферы, метаданные (статические, динамические и отсутствующие), передаточную функцию и обработку цветового пространства.

Чтобы обеспечить единообразие для разработчиков и поддержку основных вариантов использования HDR, мы требуем, чтобы производители устройств, поддерживающих HDR, обеспечивали совместимость с несколькими базовыми форматами:

  • Для воспроизведения профессионального контента, например потоковой передачи фильмов, требуется HDR10.
  • Для записи и воспроизведения пользовательского контента мы требуем использовать HLG10, чтобы обеспечить единообразное качество на всех устройствах Android.

Производители устройств, которые добавляют поддержку HDR, должны поддерживать эти форматы, но могут также поддерживать дополнительные форматы, такие как HDR10+ или Dolby Vision.

Формат Функция передачи Метаданные Кодек Битовая глубина
HLG10 HLG Нет HEVC 10 бит
HDR10 PQ Статический HEVC 10 бит
HDR10+ PQ Статический HEVC 10 бит
Dolby Vision 8.4 HLG Динамическая HEVC 10 бит

Рекомендации по обработке форматов

Формат записи Изначальный формат Формат доставки
HLG Поддержка HDR HLG в серверной части приложения Устройства, поддерживающие HDR (HLG):

HLG

Устройства поддерживают HDR (только PQ, без HLG):

SDR (преобразование тона из HLG в SDR на сервере)

Устройства, не поддерживающие HDR: SDR (преобразование тонов из HLG в SDR на сервере).

Вариант использования 2. Съемка с помощью встроенной камеры или импорт из галереи пользователя (серверное приложение поддерживает HDR)

Формат записи Изначальный формат Формат доставки
HLG HLG Как и при использовании захвата экрана в приложении
HDR10+ HLG

Выполните тональное отображение из HDR10+ (PQ) в HLG перед загрузкой с помощью API преобразователя.

Как и при использовании захвата экрана в приложении
DV8.4 HLG

(DV8.4 использует HLG, поэтому битовый поток будет вести себя как HLG, и сопоставление тонов не потребуется).

Как и при использовании захвата экрана в приложении

Пример 3. Серверная часть приложения не поддерживает HDR

Формат записи Изначальный формат Формат доставки
Любой формат SDR

Преобразование тональности из HLG в SDR перед загрузкой с помощью API Transformer

SDR