Что такое файл M3U8 и что в нём содержится?
M3U8 — вариант формата плейлистов M3U в кодировке UTF-8. Манифест HLS начинается с EXTM3U и использует теги EXT, описывающие варианты, длительности, порядковые номера, шифрование, данные инициализации и другие инструкции воспроизведения.
Файл обычно невелик, потому что он указывает на медиа, а не встраивает видео. Скачивание одного лишь текста M3U8 не скачивает фильм.
Как мастер- и медиаплейлисты M3U8 работают вместе
Мастер-плейлист перечисляет альтернативные представления с полосой, разрешением, кодеками, аудиогруппами или субтитрами. Плеер выбирает медиаплейлист по своим возможностям и состоянию сети.
Медиаплейлист перечисляет временные сегменты с EXTINF. Завершённый VOD обычно содержит EXT-X-ENDLIST, а плейлист эфира обновляется по мере появления новых сегментов.
Что означают распространённые теги HLS M3U8 для конвертации
EXT-X-STREAM-INF представляет вариант, EXTINF объявляет длительность сегмента, EXT-X-MAP указывает данные инициализации для фрагментированного MP4, а EXT-X-KEY описывает шифрование.
Эти теги напрямую влияют на конвертацию. Инструмент должен вычислять относительные ссылки, сохранять порядок сегментов, включать данные инициализации и останавливаться, если источник является эфиром или защищён неподдерживаемым способом.
Как открыть файл M3U8 (и почему двойной щелчок не работает)
Файл M3U8 — небольшой текстовый указатель, а не самодостаточное видео, поэтому двойной щелчок обычно даёт ошибку или пустую запись плейлиста. Чтобы посмотреть медиа, нужен плеер, умеющий читать манифест: VLC, браузерный плеер с поддержкой HLS или онлайн-плеер M3U8 на этом сайте.
Чтобы превратить поток в обычный видеофайл, используйте конвертер M3U8 в MP4: он скачивает сегменты, на которые указывает плейлист, и собирает их в единый MP4 на вашем устройстве.
Почему файл M3U8 может не работать в браузере, но работать в других программах
JavaScript в браузере подчиняется правилам одного источника и CORS. Каждый сервер манифеста, перенаправления, ключа, карты и сегмента должен разрешать источник запроса.
Десктопные плееры не ограничены браузерным CORS и могут поддерживать дополнительные кодеки, заголовки и методы аутентификации. Это различие объясняет многие сбои вида «в VLC работает, в браузере нет».