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

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

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

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

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

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

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

Видео форматы

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

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

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

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

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

SD (низкое качество) SD (высокое качество) HD 720p (нет данных на всех устройствах) HD 1080p (нет данных на всех устройствах)
Разрешение видео 320 х 180 пикселей 640 х 360 пикселей 1280 х 720 пикселей 1920 х 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)
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)
ХИФ Андроид 8.0+ HEIF (.heic; .heif)
AVIF (базовый профиль) Андроид 14+ Андроид 14+ Кодировщик и декодер являются обязательными, начиная с Android 14. АВИФ (.avif)

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

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

  • РТСП (РТП, СДП)
  • Прогрессивная потоковая передача 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.

Формат Передаточная функция Метаданные Кодек Битовая глубина
HLG10 ГВУ Нет 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-интерфейсов преобразователя.

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

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

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

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

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

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

СДР
,

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

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

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

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

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

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

Видео форматы

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

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

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

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

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

SD (низкое качество) SD (высокое качество) HD 720p (нет данных на всех устройствах) HD 1080p (нет данных на всех устройствах)
Разрешение видео 320 х 180 пикселей 640 х 360 пикселей 1280 х 720 пикселей 1920 х 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)
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)
ХИФ Андроид 8.0+ HEIF (.heic; .heif)
AVIF (базовый профиль) Андроид 14+ Андроид 14+ Кодировщик и декодер являются обязательными, начиная с Android 14. АВИФ (.avif)

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

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

  • РТСП (РТП, СДП)
  • Прогрессивная потоковая передача 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.

Формат Передаточная функция Метаданные Кодек Битовая глубина
HLG10 ГВУ Нет 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-интерфейсов преобразователя.

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

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

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

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

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

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

СДР
,

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

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

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

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

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

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

Видео форматы

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

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

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

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

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

SD (низкое качество) SD (высокое качество) HD 720p (нет данных на всех устройствах) HD 1080p (нет данных на всех устройствах)
Разрешение видео 320 х 180 пикселей 640 х 360 пикселей 1280 х 720 пикселей 1920 х 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)
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)
ХИФ Андроид 8.0+ HEIF (.heic; .heif)
AVIF (базовый профиль) Андроид 14+ Андроид 14+ Кодировщик и декодер являются обязательными, начиная с Android 14. АВИФ (.avif)

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

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

  • РТСП (РТП, СДП)
  • Прогрессивная потоковая передача 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.

Формат Передаточная функция Метаданные Кодек Битовая глубина
HLG10 ГВУ Нет 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-интерфейсов преобразователя.

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

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

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

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

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

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

СДР