В этом документе описывается поддержка медиакодеков, контейнеров и сетевых протоколов, предоставляемая платформой Android.
В таблицах ниже описывается поддержка форматов мультимедиа, встроенная в платформу Android. YES означает, что формат доступен на карманных компьютерах и планшетах под управлением всех версий Android. Если указана конкретная платформа Android, формат доступен на мобильных телефонах и планшетах под управлением этой версии и всех более поздних версий. Формат также может быть доступен в более ранних версиях, но это не гарантируется. Для форм-факторов, отличных от мобильных телефонов и планшетов, поддержка форматов мультимедиа может различаться.
Обратите внимание, что конкретное мобильное устройство может поддерживать дополнительные форматы или типы файлов, которые не перечислены в этих таблицах. Кроме того, если вы используете MediaCodec напрямую, вы можете получить доступ к любому из доступных форматов медиа независимо от поддерживаемых типов файлов и форматов контейнеров.
Аудио поддержка
Формат | Кодировщик | Декодер | Типы файлов Форматы контейнеров | Подробности | |
---|---|---|---|---|---|
Экстрактор | Муксер | ||||
ААК ЛК | ДА | ДА | • 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF не поддерживается) • MPEG-TS (.ts, без возможности поиска, Android 3.0+) | • 3GPP (.3gp) • 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 трансформатора | СДР |