При определении форматов, поддерживаемых ExoPlayer, важно отметить, что «медиаформаты» определяются на нескольких уровнях. От самого нижнего уровня до самого верхнего это:
- Формат отдельных медиафайлов (например, кадр видео или кадр аудио). Это форматы образцов . Обратите внимание, что типичный видеофайл будет содержать медиафайлы как минимум в двух форматах образцов: один для видео (например, H.264) и один для аудио (например, AAC).
- Формат контейнера, в котором хранятся медиафайлы и связанные с ними метаданные. Это форматы контейнеров . Медиафайл имеет один формат контейнера (например, MP4), который обычно обозначается расширением файла. Обратите внимание, что для некоторых аудиоформатов (например, MP3) форматы файлов и контейнера могут совпадать.
- Технологии адаптивной потоковой передачи, такие как DASH, SmoothStreaming и HLS. Это не совсем медиаформаты как таковые, однако все же необходимо определить, какой уровень поддержки предоставляет ExoPlayer.
В следующих разделах описывается поддержка ExoPlayer на каждом уровне, от самого высокого до самого низкого. В последних двух разделах описывается поддержка автономных форматов субтитров и воспроизведения HDR-видео.
Адаптивная потоковая передача
БРОСАТЬСЯ
ExoPlayer поддерживает DASH с несколькими форматами контейнеров. Медиапотоки должны быть демультиплексированы, то есть видео, аудио и текст должны быть определены в отдельных элементах AdaptationSet в манифесте DASH (исключение составляет CEA-608, как описано в таблице ниже). Также должна поддерживаться поддержка форматов аудио- и видеопримеров (подробнее см. раздел « Форматы примеров» ).
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| ФМП4 | ДА | Только демультиплексированные потоки |
| ВебМ | ДА | Только демультиплексированные потоки |
| Матроска | ДА | Только демультиплексированные потоки |
| MPEG-TS | НЕТ | Поддержка не планируется. |
| Субтитры / скрытые субтитры | ||
| ТТМЛ | ДА | В необработанном виде или встроенным в формат FMP4 в соответствии со стандартом ISO/IEC 14496-30 |
| WebVTT | ДА | В необработанном виде или встроенным в формат FMP4 в соответствии со стандартом ISO/IEC 14496-30 |
| CEA-608 | ДА | Встраивается в FMP4 при использовании дескрипторов доступности SCTE. |
| CEA-708 | ДА | Встраивается в FMP4 при использовании дескрипторов доступности SCTE. |
| Метаданные | ||
| Метаданные EMSG | ДА | Встроен в FMP4 |
| Защита контента | ||
| Уайдвин | ДА | Схема "cenc": API 19+; схема "cbcs": API 25+ |
| PlayReady SL2000 | ДА | Android TV, только по программе "cenc". |
| ClearKey | ДА | API 21+, только схема "cenc". |
| Вставка рекламы | ||
| Многопериодное воспроизведение | ДА | |
| Вставка рекламы с помощью сервера (кросс-ссылки) | НЕТ | |
| Реклама на стороне сервера и на стороне клиента IMA | ДА | руководство по размещению рекламы |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Воспроизведение в реальном времени CMAF со сверхнизкой задержкой | ДА | |
| Общие данные клиента мультимедиа (CMCD) | ДА | руководство по интеграции CMCD |
SmoothStreaming
ExoPlayer поддерживает SmoothStreaming с использованием контейнерного формата FMP4. Медиапотоки должны быть демультиплексированы, то есть видео, аудио и текст должны быть определены в отдельных элементах StreamIndex в манифесте SmoothStreaming. Также должна поддерживаться поддержка форматов аудио- и видеопримеров (подробнее см. раздел « Форматы примеров »).
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| ФМП4 | ДА | Только демультиплексированные потоки |
| Субтитры/скрытые субтитры | ||
| ТТМЛ | ДА | Встроен в FMP4 |
| Защита контента | ||
| PlayReady SL2000 | ДА | Только для Android TV |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Общие данные клиента мультимедиа (CMCD) | ДА | Руководство по интеграции |
ХЛС
ExoPlayer поддерживает HLS с несколькими форматами контейнеров. Необходимо также поддерживать содержащиеся в контейнере аудио- и видеоформаты (подробнее см. раздел « Форматы образцов »). Мы настоятельно рекомендуем производителям HLS-контента создавать высококачественные HLS-потоки, как описано в этой статье блога .
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| MPEG-TS | ДА | |
| FMP4/CMAF | ДА | |
| ADTS (AAC) | ДА | |
| MP3 | ДА | |
| Субтитры / скрытые субтитры | ||
| CEA-608 | ДА | |
| CEA-708 | ДА | |
| WebVTT | ДА | |
| Метаданные | ||
| ID3 | ДА | |
| СКТЕ-35 | НЕТ | |
| Защита контента | ||
| АЭС-128 | ДА | |
| Образец AES-128 | НЕТ | |
| Уайдвин | ДА | API 19+ (схема "cenc") и 25+ (схема "cbcs") |
| PlayReady SL2000 | ДА | Только для Android TV |
| Управление сервером | ||
| Обновления Delta | ДА | |
| Блокировка перезагрузки плейлиста | ДА | |
| Блокировка загрузки подсказок предварительной загрузки | ДА | За исключением диапазонов байтов с неопределенной длиной. |
| Вставка рекламы | ||
| Вставка рекламы с управлением со стороны сервера (межстраничная реклама) | Частично | Only VOD with X-ASSET-URI . Live streams and X-ASSET-LIST will be added later. |
| Реклама на стороне сервера и на стороне клиента IMA | ДА | руководство по размещению рекламы |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Низкозадержечная HLS (Apple) | ДА | |
| Низкозадержечная HLS (Community) | НЕТ | |
| Данные клиента Common Media CMCD | ДА | руководство по интеграции CMCD |
Прогрессивные форматы контейнеров
ExoPlayer может воспроизводить потоки в следующих форматах контейнеров напрямую. Также должна поддерживаться поддержка форматов аудио- и видеообразцов (подробнее см. раздел « Форматы образцов» ). Информацию о поддержке контейнеров и форматов изображений см. в разделе «Образы» .
| Формат контейнера | Поддерживается | Комментарии |
|---|---|---|
| MP4 | ДА | |
| M4A | ДА | |
| ФМП4 | ДА | |
| ВебМ | ДА | |
| Матроска | ДА | |
| MP3 | ДА | Некоторые потоки доступны только в режиме поиска с постоянным битрейтом** |
| Огг | ДА | Содержит Vorbis, Opus и FLAC. |
| WAV | ДА | |
| MPEG-TS | ДА | |
| MPEG-PS | ДА | |
| FLV | ДА | Недоступно для поиска* |
| ADTS (AAC) | ДА | Поиск возможен только с использованием поиска с постоянным битрейтом** |
| FLAC | ДА | Использование библиотеки FLAC или экстрактора FLAC из библиотеки ExoPlayer *** |
| АМР | ДА | Поиск возможен только с использованием поиска с постоянным битрейтом** |
* Перемотка не поддерживается, поскольку контейнер не предоставляет метаданных (например, индекса образцов), позволяющих медиаплееру эффективно выполнять перемотку. Если перемотка необходима, мы рекомендуем использовать более подходящий формат контейнера.
** Эти экстракторы имеют флаг FLAG_ENABLE_CONSTANT_BITRATE_SEEKING для включения приблизительного поиска с использованием предположения о постоянной скорости передачи данных. Эта функция отключена по умолчанию. Самый простой способ включить эту функцию для всех экстракторов, которые ее поддерживают, — использовать DefaultExtractorsFactory.setConstantBitrateSeekingEnabled , как описано здесь .
*** Экстрактор библиотеки FLAC выводит необработанный звук, который может обрабатываться фреймворком на всех уровнях API. Экстрактор библиотеки ExoPlayer выводит аудиокадры FLAC и поэтому зависит от наличия декодера FLAC (например, декодера MediaCodec , обрабатывающего FLAC (требуется начиная с уровня API 27), или библиотеки FFmpeg с включенной поддержкой FLAC). DefaultExtractorsFactory использует экстрактор расширения, если приложение было собрано с библиотекой FLAC . В противном случае он использует экстрактор библиотеки ExoPlayer .
RTSP
ExoPlayer поддерживает как прямые трансляции, так и трансляции по запросу в формате RTSP. Поддерживаемые форматы примеров и типы сетей перечислены ниже.
Поддерживаемые форматы образцов
- H264 (в описании медиафайла SDP для инициализации декодера должны быть указаны данные SPS/PPS в атрибуте fmtp).
- AAC (с потоком данных ADTS).
- AC3.
Поддерживаемые типы сетей
- RTP через UDP в режиме одноадресной рассылки (многоадресная рассылка не поддерживается).
- Чередование протоколов RTSP и RTP поверх RTSP с использованием TCP.
Примеры форматов
По умолчанию ExoPlayer использует декодеры платформы Android. Поэтому поддерживаемые форматы сэмплов зависят от базовой платформы, а не от ExoPlayer. Для получения информации о поддерживаемых устройствами Android форматах сэмплов см. раздел «Поддерживаемые форматы мультимедиа» . Обратите внимание, что отдельные устройства могут поддерживать дополнительные форматы помимо перечисленных.
Помимо декодеров платформы Android, ExoPlayer также может использовать расширения программного декодирования. Их необходимо собрать вручную и включить в проекты, которые хотят их использовать. В настоящее время мы предоставляем библиотеки программного декодирования для AV1 , VP9 , FLAC , Opus , FFmpeg , MIDI , IAMF и MPEG-H .
Библиотека FFmpeg
Библиотека FFmpeg поддерживает декодирование различных форматов аудиосэмплов. Вы можете выбрать, какие декодеры включить при сборке библиотеки, как описано в файле README.md библиотеки. В следующей таблице приведено соответствие между форматом аудиосэмпла и соответствующим именем декодера FFmpeg.
| Пример формата | Название декодера(ов) |
|---|---|
| Ворбис | ворбис |
| Опус | опус |
| FLAC | флак |
| АЛАК | алак |
| μ-закон PCM | pcm_mulaw |
| PCM A-law | pcm_alaw |
| MP1, MP2, MP3 | mp3 |
| AMR-NB | амрнб |
| AMR-WB | амруб |
| ААК | аак |
| АС-3 | ac3 |
| E-AC-3 | каждый3 |
| DTS, DTS-HD | дка |
| TrueHD | mlp truehd |
Изображения
ExoPlayer поддерживает следующие форматы изображений. Инструкции по интеграции с внешними библиотеками, поддерживающими другие форматы, см. в разделе «Библиотеки загрузки изображений».
| Формат изображения | Поддерживается | Примечания |
|---|---|---|
| БМП | ДА | |
| GIF | НЕТ | Нет поддержки экстрактора |
| JPEG | ДА | |
| JPEG Моушн-фото | ДА | Поддерживаются статичные изображения и видео. |
| JPEG Ultra HDR | ДА | В версиях Android до 14 или на дисплеях без поддержки HDR происходит переключение на SDR. |
| ПНГ | ДА | |
| ВебП | ДА | |
| HEIF/HEIC | ДА | |
| HEIC Motion Photo | ДА | |
| AVIF (базовый уровень) | ДА | Расшифровка возможна только на Android 14+ |
Автономные форматы субтитров
ExoPlayer поддерживает автономные файлы субтитров в различных форматах. Файлы субтитров можно загрузить, как описано на странице медиафайлов .
| Формат контейнера | Поддерживается | MIME-тип |
|---|---|---|
| WebVTT | ДА | MimeTypes.TEXT_VTT |
| TTML / SMPTE-TT | ДА | MimeTypes.APPLICATION_TTML |
| SubRip | ДА | MimeTypes.APPLICATION_SUBRIP |
| SubStationAlpha (SSA/ASS) | ДА | MimeTypes.TEXT_SSA |
воспроизведение HDR-видео
ExoPlayer обрабатывает извлечение видео с расширенным динамическим диапазоном (HDR) из различных контейнеров, включая Dolby Vision в формате MP4 и HDR10+ в Matroska/WebM. Декодирование и отображение HDR-контента зависит от поддержки платформы Android и устройства. См. раздел «Воспроизведение HDR-видео» , чтобы узнать о проверке возможностей декодирования/отображения HDR и ограничениях поддержки HDR в разных версиях Android.
При воспроизведении HDR-потока, требующего поддержки определенного профиля кодека, селектор MediaCodec по умолчанию в ExoPlayer выберет декодер, поддерживающий этот профиль (если он доступен), даже если другой декодер для того же типа MIME, не поддерживающий этот профиль, находится выше в списке кодеков. Это может привести к выбору программного декодера в случаях, когда поток превышает возможности аппаратного декодера для того же типа MIME.
При определении форматов, поддерживаемых ExoPlayer, важно отметить, что «медиаформаты» определяются на нескольких уровнях. От самого нижнего уровня до самого верхнего это:
- Формат отдельных медиафайлов (например, кадр видео или кадр аудио). Это форматы образцов . Обратите внимание, что типичный видеофайл будет содержать медиафайлы как минимум в двух форматах образцов: один для видео (например, H.264) и один для аудио (например, AAC).
- Формат контейнера, в котором хранятся медиафайлы и связанные с ними метаданные. Это форматы контейнеров . Медиафайл имеет один формат контейнера (например, MP4), который обычно обозначается расширением файла. Обратите внимание, что для некоторых аудиоформатов (например, MP3) форматы файлов и контейнера могут совпадать.
- Технологии адаптивной потоковой передачи, такие как DASH, SmoothStreaming и HLS. Это не совсем медиаформаты как таковые, однако все же необходимо определить, какой уровень поддержки предоставляет ExoPlayer.
В следующих разделах описывается поддержка ExoPlayer на каждом уровне, от самого высокого до самого низкого. В последних двух разделах описывается поддержка автономных форматов субтитров и воспроизведения HDR-видео.
Адаптивная потоковая передача
БРОСАТЬСЯ
ExoPlayer поддерживает DASH с несколькими форматами контейнеров. Медиапотоки должны быть демультиплексированы, то есть видео, аудио и текст должны быть определены в отдельных элементах AdaptationSet в манифесте DASH (исключение составляет CEA-608, как описано в таблице ниже). Также должна поддерживаться поддержка форматов аудио- и видеопримеров (подробнее см. раздел « Форматы примеров» ).
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| ФМП4 | ДА | Только демультиплексированные потоки |
| ВебМ | ДА | Только демультиплексированные потоки |
| Матроска | ДА | Только демультиплексированные потоки |
| MPEG-TS | НЕТ | Поддержка не планируется. |
| Субтитры / скрытые субтитры | ||
| ТТМЛ | ДА | В необработанном виде или встроенным в формат FMP4 в соответствии со стандартом ISO/IEC 14496-30 |
| WebVTT | ДА | В необработанном виде или встроенным в формат FMP4 в соответствии со стандартом ISO/IEC 14496-30 |
| CEA-608 | ДА | Встраивается в FMP4 при использовании дескрипторов доступности SCTE. |
| CEA-708 | ДА | Встраивается в FMP4 при использовании дескрипторов доступности SCTE. |
| Метаданные | ||
| Метаданные EMSG | ДА | Встроен в FMP4 |
| Защита контента | ||
| Уайдвин | ДА | Схема "cenc": API 19+; схема "cbcs": API 25+ |
| PlayReady SL2000 | ДА | Android TV, только по программе "cenc". |
| ClearKey | ДА | API 21+, только схема "cenc". |
| Вставка рекламы | ||
| Многопериодное воспроизведение | ДА | |
| Вставка рекламы с помощью сервера (кросс-ссылки) | НЕТ | |
| Реклама на стороне сервера и на стороне клиента IMA | ДА | руководство по размещению рекламы |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Воспроизведение в реальном времени CMAF со сверхнизкой задержкой | ДА | |
| Общие данные клиента мультимедиа (CMCD) | ДА | руководство по интеграции CMCD |
SmoothStreaming
ExoPlayer поддерживает SmoothStreaming с использованием контейнерного формата FMP4. Медиапотоки должны быть демультиплексированы, то есть видео, аудио и текст должны быть определены в отдельных элементах StreamIndex в манифесте SmoothStreaming. Также должна поддерживаться поддержка форматов аудио- и видеопримеров (подробнее см. раздел « Форматы примеров »).
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| ФМП4 | ДА | Только демультиплексированные потоки |
| Субтитры/скрытые субтитры | ||
| ТТМЛ | ДА | Встроен в FMP4 |
| Защита контента | ||
| PlayReady SL2000 | ДА | Только для Android TV |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Общие данные клиента мультимедиа (CMCD) | ДА | Руководство по интеграции |
ХЛС
ExoPlayer поддерживает HLS с несколькими форматами контейнеров. Необходимо также поддерживать содержащиеся в контейнере аудио- и видеоформаты (подробнее см. раздел « Форматы образцов »). Мы настоятельно рекомендуем производителям HLS-контента создавать высококачественные HLS-потоки, как описано в этой статье блога .
| Особенность | Поддерживается | Комментарии |
|---|---|---|
| Контейнеры | ||
| MPEG-TS | ДА | |
| FMP4/CMAF | ДА | |
| ADTS (AAC) | ДА | |
| MP3 | ДА | |
| Субтитры / скрытые субтитры | ||
| CEA-608 | ДА | |
| CEA-708 | ДА | |
| WebVTT | ДА | |
| Метаданные | ||
| ID3 | ДА | |
| СКТЕ-35 | НЕТ | |
| Защита контента | ||
| АЭС-128 | ДА | |
| Образец AES-128 | НЕТ | |
| Уайдвин | ДА | API 19+ (схема "cenc") и 25+ (схема "cbcs") |
| PlayReady SL2000 | ДА | Только для Android TV |
| Управление сервером | ||
| Обновления Delta | ДА | |
| Блокировка перезагрузки плейлиста | ДА | |
| Блокировка загрузки подсказок предварительной загрузки | ДА | За исключением диапазонов байтов с неопределенной длиной. |
| Вставка рекламы | ||
| Вставка рекламы с управлением со стороны сервера (межстраничная реклама) | Частично | Только видео по запросу (VOD) с X-ASSET-URI . Прямые трансляции и X-ASSET-LIST будут добавлены позже. |
| Реклама на стороне сервера и на стороне клиента IMA | ДА | руководство по размещению рекламы |
| Воспроизведение в реальном времени | ||
| Обычное воспроизведение в прямом эфире | ДА | |
| Низкозадержечная HLS (Apple) | ДА | |
| Низкозадержечная HLS (Community) | НЕТ | |
| Данные клиента Common Media CMCD | ДА | руководство по интеграции CMCD |
Прогрессивные форматы контейнеров
ExoPlayer может воспроизводить потоки в следующих форматах контейнеров напрямую. Также должна поддерживаться поддержка форматов аудио- и видеообразцов (подробнее см. раздел « Форматы образцов» ). Информацию о поддержке контейнеров и форматов изображений см. в разделе «Образы» .
| Формат контейнера | Поддерживается | Комментарии |
|---|---|---|
| MP4 | ДА | |
| M4A | ДА | |
| ФМП4 | ДА | |
| ВебМ | ДА | |
| Матроска | ДА | |
| MP3 | ДА | Некоторые потоки доступны только в режиме поиска с постоянным битрейтом** |
| Огг | ДА | Содержит Vorbis, Opus и FLAC. |
| WAV | ДА | |
| MPEG-TS | ДА | |
| MPEG-PS | ДА | |
| FLV | ДА | Недоступно для поиска* |
| ADTS (AAC) | ДА | Поиск возможен только с использованием поиска с постоянным битрейтом** |
| FLAC | ДА | Использование библиотеки FLAC или экстрактора FLAC из библиотеки ExoPlayer *** |
| АМР | ДА | Поиск возможен только с использованием поиска с постоянным битрейтом** |
* Перемотка не поддерживается, поскольку контейнер не предоставляет метаданных (например, индекса образцов), позволяющих медиаплееру эффективно выполнять перемотку. Если перемотка необходима, мы рекомендуем использовать более подходящий формат контейнера.
** Эти экстракторы имеют флаг FLAG_ENABLE_CONSTANT_BITRATE_SEEKING для включения приблизительного поиска с использованием предположения о постоянной скорости передачи данных. Эта функция отключена по умолчанию. Самый простой способ включить эту функцию для всех экстракторов, которые ее поддерживают, — использовать DefaultExtractorsFactory.setConstantBitrateSeekingEnabled , как описано здесь .
*** Экстрактор библиотеки FLAC выводит необработанный звук, который может обрабатываться фреймворком на всех уровнях API. Экстрактор библиотеки ExoPlayer выводит аудиокадры FLAC и поэтому зависит от наличия декодера FLAC (например, декодера MediaCodec , обрабатывающего FLAC (требуется начиная с уровня API 27), или библиотеки FFmpeg с включенной поддержкой FLAC). DefaultExtractorsFactory использует экстрактор расширения, если приложение было собрано с библиотекой FLAC . В противном случае он использует экстрактор библиотеки ExoPlayer .
RTSP
ExoPlayer поддерживает как прямые трансляции, так и трансляции по запросу в формате RTSP. Поддерживаемые форматы примеров и типы сетей перечислены ниже.
Поддерживаемые форматы образцов
- H264 (в описании медиафайла SDP для инициализации декодера должны быть указаны данные SPS/PPS в атрибуте fmtp).
- AAC (с потоком данных ADTS).
- AC3.
Поддерживаемые типы сетей
- RTP через UDP в режиме одноадресной рассылки (многоадресная рассылка не поддерживается).
- Чередование протоколов RTSP и RTP поверх RTSP с использованием TCP.
Примеры форматов
По умолчанию ExoPlayer использует декодеры платформы Android. Поэтому поддерживаемые форматы сэмплов зависят от базовой платформы, а не от ExoPlayer. Для получения информации о поддерживаемых устройствами Android форматах сэмплов см. раздел «Поддерживаемые форматы мультимедиа» . Обратите внимание, что отдельные устройства могут поддерживать дополнительные форматы помимо перечисленных.
Помимо декодеров платформы Android, ExoPlayer также может использовать расширения программного декодирования. Их необходимо собрать вручную и включить в проекты, которые хотят их использовать. В настоящее время мы предоставляем библиотеки программного декодирования для AV1 , VP9 , FLAC , Opus , FFmpeg , MIDI , IAMF и MPEG-H .
Библиотека FFmpeg
Библиотека FFmpeg поддерживает декодирование различных форматов аудиосэмплов. Вы можете выбрать, какие декодеры включить при сборке библиотеки, как описано в файле README.md библиотеки. В следующей таблице приведено соответствие между форматом аудиосэмпла и соответствующим именем декодера FFmpeg.
| Пример формата | Название декодера(ов) |
|---|---|
| Ворбис | ворбис |
| Опус | опус |
| FLAC | флак |
| АЛАК | алак |
| μ-закон PCM | pcm_mulaw |
| PCM A-law | pcm_alaw |
| MP1, MP2, MP3 | mp3 |
| AMR-NB | амрнб |
| AMR-WB | амруб |
| ААК | аак |
| АС-3 | ac3 |
| E-AC-3 | каждый3 |
| DTS, DTS-HD | дка |
| TrueHD | mlp truehd |
Изображения
ExoPlayer поддерживает следующие форматы изображений. Инструкции по интеграции с внешними библиотеками, поддерживающими другие форматы, см. в разделе «Библиотеки загрузки изображений».
| Формат изображения | Поддерживается | Примечания |
|---|---|---|
| БМП | ДА | |
| GIF | НЕТ | Нет поддержки экстрактора |
| JPEG | ДА | |
| JPEG Моушн-фото | ДА | Поддерживаются статичные изображения и видео. |
| JPEG Ultra HDR | ДА | В версиях Android до 14 или на дисплеях без поддержки HDR происходит переключение на SDR. |
| ПНГ | ДА | |
| ВебП | ДА | |
| HEIF/HEIC | ДА | |
| HEIC Motion Photo | ДА | |
| AVIF (базовый уровень) | ДА | Расшифровка возможна только на Android 14+ |
Автономные форматы субтитров
ExoPlayer поддерживает автономные файлы субтитров в различных форматах. Файлы субтитров можно загрузить, как описано на странице медиафайлов .
| Формат контейнера | Поддерживается | MIME-тип |
|---|---|---|
| WebVTT | ДА | MimeTypes.TEXT_VTT |
| TTML / SMPTE-TT | ДА | MimeTypes.APPLICATION_TTML |
| SubRip | ДА | MimeTypes.APPLICATION_SUBRIP |
| SubStationAlpha (SSA/ASS) | ДА | MimeTypes.TEXT_SSA |
воспроизведение HDR-видео
ExoPlayer обрабатывает извлечение видео с расширенным динамическим диапазоном (HDR) из различных контейнеров, включая Dolby Vision в формате MP4 и HDR10+ в Matroska/WebM. Декодирование и отображение HDR-контента зависит от поддержки платформы Android и устройства. См. раздел «Воспроизведение HDR-видео» , чтобы узнать о проверке возможностей декодирования/отображения HDR и ограничениях поддержки HDR в разных версиях Android.
При воспроизведении HDR-потока, требующего поддержки определенного профиля кодека, селектор MediaCodec по умолчанию в ExoPlayer выберет декодер, поддерживающий этот профиль (если он доступен), даже если другой декодер для того же типа MIME, не поддерживающий этот профиль, находится выше в списке кодеков. Это может привести к выбору программного декодера в случаях, когда поток превышает возможности аппаратного декодера для того же типа MIME.