Видео и субтитры · Загрузчик медиафайлов по прямой ссылке
Прямые ссылки против потоковых манифестов: почему .m3u8 или .mpd не является файлом
· Фон
загрузки потоковая передача форматы файлов
Прямая ссылка указывает на один файл; манифест потоковой передачи представляет собой список воспроизведения сегментов. В этом посте объясняется HLS и DASH, как работает адаптивная потоковая передача и почему манифест не является чем-то, что загрузчик по прямой ссылке может сохранить как видео.
Две ссылки, одна сохраняет, другая нет — разница, которая сбивает с толку почти всех
Ссылка .mp4 может отправлять обратно видеофайл, который может сохранить браузер. Ссылка .m3u8 может отправить обратно только несколько килобайт текста, даже если проигрыватель транслирует по ней всю программу. Продюсер видео, сохранивший последнее, не загрузил произведение: они сохранили его плейлист. Расширение и Content-Type ответа являются полезными подсказками, но проверяйте фактический ответ, а не рассматривайте каждый URL, оканчивающийся на «video», как один полный файл.
Что предоставляет прямой файл URL: один ресурс, возможно, заголовок размера.
Прямой URL обращается к одному ресурсу, например MP3, MP4 или изображению. Fetch может читать свои байты ответа и создавать локальный Blob, когда сервер разрешает доступ из разных источников. Content-Length может сообщить вам его размер, но сервер может осуществлять потоковую передачу, не предоставляя его, поэтому «один файл» не гарантирует заголовок длины. Direct Media Downloader намеренно извлекает указанный вами хост из вашего браузера; это не прокси-сервер и не сканер ссылок, встроенных в веб-страницу.
Что такое HLS и DASH — списки воспроизведения (.m3u8, .mpd), которые указывают на множество коротких сегментов с разными уровнями качества.
HTTP Прямая трансляция (HLS) использует текстовые списки воспроизведения, обычно заканчивающиеся на .m3u8; главный список воспроизведения может предлагать несколько битрейтов, каждый из которых ведет к другому списку коротких медиасегментов. MPEG-DASH использует MPD описание периодов, адаптаций и URL-адресов сегментов. Игрок выбирает и запрашивает фрагменты по мере необходимости, иногда переключая качество при изменении пропускной способности. При сохранении только манифеста сохраняется карта этих адресов, а не объединенный аудиовизуальный файл. RFC 8216 описывает HLS список воспроизведения и поведение сегмента; DASH имеет собственный стандарт и инструменты.
Почему была изобретена адаптивная потоковая передача — буферизация, переменные соединения и отказ от прогрессивной загрузки
Адаптивная потоковая передача устраняет ограничения прогрессивной загрузки: меняющаяся сеть может не поддерживать первоначальный выбор качества, зритель может искать более позднюю часть, а окончательная длина файла живого события еще неизвестна. Сегментированные медиафайлы позволяют игрокам запрашивать соответствующий фрагмент, а не ждать всего видео. Компромисс — это набор скоординированных запросов и состояния воспроизведения, которые действие сохранения одного файла не воспроизводит.
Сегменты, ключи и DRM — почему части часто бесполезны без лицензии и почему их сборка выходит за рамки
Некоторые сегменты имеют отдельные ключи шифрования, а в некоторых при воспроизведении используется лицензионная система DRM. Даже если манифест доступен для публичного чтения, его сегменты могут быть защищены, иметь кратковременный срок действия или разрешены только для воспроизведения. Сшивка файлов, получение ключей или обход ограничений поставщика выходят за рамки Direct Media Downloader и могут нарушать права или средства контроля доступа. Прямая прямая ссылка на файл, предоставленная авторизованным издателем, отличается от восстановления защищенного потока.
Рабочий пример: проверка манифеста в текстовом редакторе — чтение списка сегментов и понимание того, что он содержит, а что нет.
Рассмотрим игрушечный текстовый манифест, содержащий #EXTM3U, строку #EXTINF:6.0 и путь segment0001.ts, за которыми следует еще одна длительность и segment0002.ts. При открытии его в текстовом редакторе отображаются директивы и относительные имена файлов, а не декодированные видеокадры. Проигрыватель HLS определяет и запрашивает эти пути в соответствии со списком воспроизведения и текущим соединением. Загрузка текстового файла с помощью браузера сохраняет манифест; он не объединяет segment0001.ts и segment0002.ts в воспроизводимую программу. Это иллюстративный эскиз формата, а не претензия к какому-то конкретному сервису.
Вывод: манифест — это карта, а не территория — как Direct Media Downloader обрабатывает прямые файлы и прямо заявляет, что манифесты выходят за рамки его работы.
Манифест — это карта, а не видео, которое он отображает. Direct Media Downloader ToolAcre намеренно ограничен прямыми ссылками на файлы с предоставленными разрешениями и объясняет CORS и неподдерживаемые потоки, а не скрывает ретранслятор за интерфейсом. Когда вы сталкиваетесь с файлом .m3u8 или .mpd, найдите законную функцию загрузки поставщика или запросите исходный файл у издателя, вместо того, чтобы ожидать, что инструмент прямой ссылки станет экстрактором потоковой передачи.