Поддерживаемые медиаформаты

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

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

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

Аудио поддержка

Формат Кодировщик Декодер Типы файлов Форматы контейнеров Подробности
Экстрактор Муксер
ААК ЛК ДА ДА • 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 не поддерживается)
• MPEG-TS (не уверен) (.ts, недоступен для поиска, Android 3.0+)
Поддержка моно/стерео/5.0/5.1 контента со стандартными частотами дискретизации от 8 до 48 кГц.
HE-AACv1 (AAC+) Андроид 4.1+ ДА
HE-AACv2 (улучшенный AAC+) ДА Поддержка стерео/5.0/5.1-контента со стандартными частотами дискретизации от 8 до 48 кГц.
xHE-AAC Андроид 9+ Поддержка до 8-канального контента со стандартной частотой дискретизации от 8 до 48 кГц
AAC ELD (улучшенный AAC с малой задержкой) Андроид 4.1+ Андроид 4.1+ Поддержка моно/стерео контента со стандартной частотой дискретизации от 16 до 48 кГц
АМР-НБ ДА ДА • 3GPP (.3gp)
• АМР (.amr)
• 3GPP (.3gp)
• АМР (.amr)
4,75–12,2 кбит/с с частотой дискретизации 8 кГц
AMR-WB ДА ДА 9 скоростей от 6,60 кбит/с до 23,85 кбит/с с частотой дискретизации 16 кГц
FLAC Андроид 4.1+ Андроид 3.1+ • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Матроска (.mkv)
Моно/стерео (не многоканальность). Частота дискретизации до 48 кГц (но на устройствах с выходом 44,1 кГц рекомендуется до 44,1 кГц, поскольку понижающий дискретизатор с 48 до 44,1 кГц не включает фильтр нижних частот). Рекомендуется 16 бит; для 24 бит дизеринг не применяется.
МИДИ ДА • Введите 0 и 1 (.mid, .xmf, .mxmf).
• RTTTL/RTX (.rtttl, .rtx)
• ОТА (.ota)
• iMelody (.imy)
MIDI Type 0 и 1. DLS Version 1 и 2. XMF и Mobile XMF. Поддержка форматов рингтонов RTTTL/RTX, OTA и iMelody
МП3 ДА • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Матроска (.mkv, Android 10+)
Моно/стерео 8-320 Кбит/с с постоянной (CBR) или переменной скоростью передачи данных (VBR)
Опус Андроид 10+ Андроид 5.0+ • Огг (.ogg)
• MPEG-4 (.mp4)
• Матроска (.mkv)
• Огг (.ogg)
ВебМ (.webm)
PCM/ВОЛНА Андроид 4.1+ ДА ВОЛНА (.wav) 8- и 16-битная линейная PCM (скорость до предела оборудования). Частота дискретизации для записей raw PCM составляет 8000, 16000 и 44100 Гц.
Ворбис ДА • Огг (.ogg)
• Матроска (.mkv, Android 4.0+)
• MPEG-4 (.mp4, .m4a, Android 10+)
ВебМ (.webm)

Видео поддержка

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

Формат Кодировщик Декодер Типы файлов Форматы контейнеров Подробности
Экстрактор Муксер
Х.263 ДА ДА • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Матроска (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Поддержка H.263 является опциональной в Android 7.0+.
H.264 AVC
Базовый профиль (БП)
Андроид 3.0+ ДА • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, только звук AAC, без возможности поиска, Android 3.0+)
• Матроска (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Основной профиль (МП)
Андроид 6.0+ ДА Декодер обязателен, кодер рекомендуется.
H.265 HEVC Андроид 5.0+ • MPEG-4 (.mp4)
• Матроска (.mkv)
• MPEG-4 (.mp4) Основной профиль уровня 3 для мобильных устройств и основной профиль уровня 4.1 для Android TV
MPEG-4 SP ДА • MPEG-4 (.mp4) • MPEG-4 (.mp4)
ВП8 Андроид 4.3+ Андроид 2.3.3+ВебМ (.webm)
• Матроска (.mkv, Android 4.0+)
ВебМ (.webm) Трансляция доступна только на Android 4.0 и выше
ВП9 Андроид 4.4+ВебМ (.webm)
• Матроска (.mkv)
• MPEG-4 (.mp4)
ВебМ (.webm)
АВ1 Андроид 14+ Андроид 10+ • MPEG-4 (.mp4)
• Матроска (.mkv)
• MPEG-4 (.mp4) Кодер и декодер обязательны, начиная с Android 14.
АПВ Андроид 16+ Андроид 16+ • MPEG-4 (.mp4) • MPEG-4 (.mp4) Кодер и декодер обязательны, начиная с Android 16.

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

В таблице ниже перечислены профили кодирования видео Android media framework и параметры, рекомендуемые для воспроизведения с использованием кодека H.264 Baseline Profile. Те же рекомендации применимы к кодеку 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 Media Framework и параметры, рекомендуемые для воспроизведения с использованием медиакодека 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 Мбит/с 10 Мбит/с

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

Реализации устройств должны поддерживать динамическое разрешение видео и переключение частоты кадров через стандартные 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)
GIF ДА GIF-файл (.gif)
JPEG ДА ДА Базовый+прогрессивный JPEG-файл (.jpg)
PNG ДА ДА PNG (.png)
ВебП Андроид 4.0+
Без потерь: Android 10+
Прозрачность: Android 4.2.1+
Андроид 4.0+
Без потерь: Android 4.2.1+
Прозрачность: Android 4.2.1+
Кодирование без потерь возможно на Android 10 при качестве 100. WebP (.webp)
ХЕИФ Андроид 8.0+ HEIF (.heic; .heif)
AVIF (базовый профиль) Андроид 14+ Андроид 14+ Кодер и декодер обязательны, начиная с Android 14. АВИФ (.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-видео

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

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

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

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

Формат Передаточная функция Метаданные Кодек Глубина цвета
ГЛГ10 ГВУ Нет HEVC 10-битный
HDR10 Пк Статичный HEVC 10-битный
HDR10+ Пк Статичный HEVC 10-битный
Долби Вижн 8.4 ГВУ Динамичный HEVC 10-битный

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

Формат захвата Формат загрузки Формат доставки
ГВУ Поддержка бэкэнда приложения HDR HLG Устройства, поддерживающие HDR (HLG):

ГВУ

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

SDR (тональная карта из HLG в SDR в бэкэнде)

Устройства, которые не поддерживают HDR: SDR (тональная карта из HLG в SDR на внутреннем сервере)

Вариант использования 2: Собственная съемка камерой или импорт из галереи пользователя (бэкэнд приложения поддерживает HDR)

Формат захвата Формат загрузки Формат доставки
ГВУ ГВУ То же, что и при использовании захвата в приложении
HDR10+ ГВУ

Тональная карта из HDR10+ (PQ) в HLG перед загрузкой с использованием API-интерфейсов transformer

То же, что и при использовании захвата в приложении
ДВ8.4 ГВУ

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

То же, что и при использовании захвата в приложении

Вариант использования 3: бэкэнд приложения не поддерживает HDR

Формат захвата Формат загрузки Формат доставки
Любой формат СДР

Тональная карта из HLG в SDR перед загрузкой с использованием API трансформатора

СДР