Стриминг и IPTV
Прямое телевидение через интернет позаимствовало свой словарь из трёх разных мест — вещания, веба и одного конкретного панельного софта, случайно ставшего стандартом. Вот термины, которые тебе встретятся.
-
HLS
HTTP Live Streaming -
Протокол стриминга от Apple, которым пользуется практически всё. Видео нарезается на короткие сегменты, перечисленные в текстовом плейлисте, а плеер забирает их по порядку через обычный HTTP.
HLS победил, потому что ему не нужен специальный сервер: сегменты — это файлы, плейлист — это файл, и любой веб-сервер способен отдать и то и другое. Он нативно поддерживается везде на платформах Apple и почти везде ещё.
У его конструкции есть одно последствие, с которым люди сталкиваются постоянно, — единого видеофайла для сохранения не существует. То, что ты смотришь, существует лишь как тысяча кусочков и набор инструкций по их получению.
Смотри также: МанифестСегментАдаптивный битрейт
-
Манифест
плейлист, .m3u8 -
Текстовый файл, перечисляющий, из чего состоит поток. Мастер-манифест перечисляет доступные уровни качества; каждый из них указывает на медиаманифест со списком реальных сегментов.
Открой такой файл — и увидишь пару десятков строк: заголовок, несколько параметров и адреса. Всё, что ты смотришь, находится в другом месте. Для прямого эфира плеер заново запрашивает этот файл каждые несколько секунд, потому что он растёт по мере продолжения трансляции.
Адреса манифеста обычно подписаны и ограничены по времени, поэтому ссылка, работавшая утром, к вечеру часто уже указывает в никуда.
-
Сегмент
кусок -
Один короткий отрезок потока, обычно от двух до десяти секунд, доставляемый как отдельный файл. Час видео — это от сотен до тысяч таких отрезков.
Именно сегментация делает возможной смену качества прямо во время воспроизведения: плеер просто запрашивает следующий кусок из другого уровня качества, и переход происходит на границе сегментов, а не как обрыв.
Она же превращает скачивание потока в пересборку, а не в копирование. Каждый сегмент нужно забрать по отдельности, а затем записать в единый контейнер с нормальным индексом — именно этот шаг даёт результату работающую полосу прокрутки.
Смотри также: HLSРемультиплексирование
-
Адаптивный битрейт
ABR -
Предложение одного и того же контента на нескольких уровнях качества с возможностью для плеера переключаться между ними по мере изменения соединения. Именно поэтому потоки теряют чёткость, а не останавливаются вовсе.
Плеер измеряет, с какой скоростью приходят сегменты, и выбирает наивысшее качество, которое, по его мнению, способен поддерживать. Когда соединение сужается, он понижает уровень — обычно ещё до того, как буфер опустеет.
Это самое главное отличие просмотра потока от скачивания файла. Загрузка хочет лучшую версию и готова ждать; поток же предпочтёт выглядеть более размытым, чем ставить воспроизведение на паузу.
Смотри также: HLSБуферизацияБитрейт
-
Буферизация
-
Хранение плеером нескольких секунд видео с опережением того, что ты смотришь прямо сейчас, чтобы кратковременный сбой сети не превратился в паузу. Когда ты видишь это слово на экране, буфер уже иссяк.
Больший буфер переживает больше сбоев ценой более долгого старта и более медленной реакции на смену канала. Прямые эфиры держат его намеренно небольшим, поэтому они более хрупкие, чем видео по запросу.
Когда канал IPTV заикается, причина почти всегда лежит где-то между провайдером и тобой — на их сервере, на маршруте, в твоём соединении. То же самое приложение на том же устройстве воспроизводит локальный файл того же битрейта без единого рывка — это самый быстрый способ отличить одно от другого.
Смотри также: Адаптивный битрейтIPTV
-
IPTV
-
Телевидение, доставляемое через интернет, а не по эфиру, кабелю или спутнику. Как слово, оно описывает лишь способ доставки и ничего не говорит о том, кто имеет право доставлять что именно.
То, из чего на самом деле состоит подписка, — это список: плейлист M3U или аккаунт на панели, — называющий каналы и дающий адрес для каждого. Плеер превращает это в телепрограмму; сам он ничего не хранит и не предоставляет.
Это важная часть как с юридической, так и с технической стороны. Приложение, воспроизводящее IPTV, не поставляет каналы само, а вопрос о том, имеет ли конкретный провайдер право транслировать то, что он транслирует, касается именно этого провайдера.
Смотри также: Плейлист M3UXtream CodesEPG
-
Плейлист M3U
-
Обычный текстовый список названий каналов и адресов потоков — самый распространённый способ доставки подписки IPTV. Он вообще не содержит видео.
Каждая запись — это строка, называющая канал (с логотипом, группой и идентификатором, добавленными по соглашению), и строка с его адресом. Ни одно из этих соглашений так и не стало стандартом, поэтому каждый провайдер пишет их чуть по-своему.
Списки провайдеров выросли далеко за пределы того, что предполагал формат: сотни тысяч каналов и сотни мегабайт текста — сегодня обычное дело, а приложение, загружающее такой список в память перед разбором, iOS завершит задолго до того, как оно закончит.
Смотри также: IPTVXtream Codes
-
Xtream Codes
-
Панельный софт, чей API стал фактическим стандартом. Вместо файла плейлиста ты получаешь адрес сервера, имя пользователя и пароль, а приложение запрашивает у панели каналы, фильмы, сериалы и программу передач.
Компания, стоявшая за этим продуктом, закрылась в 2019 году; API пережил её, потому что тысячи провайдеров уже были построены на нём, а их клиенты этого ожидали. Софт, описываемый как «совместимый с Xtream», реализует именно этот интерфейс, а не использует продукт той компании.
От обычного плейлиста его отличают две полезные вещи: каталог приходит в виде структурированных данных, а не плоского списка, и панель применяет ограничение на количество соединений — из-за чего одновременная загрузка и прямой эфир иногда могут выбивать друг друга.
Смотри также: IPTVПлейлист M3UEPG
-
EPG
электронная программа передач -
Расписание: что идёт на каждом канале сейчас, что дальше и что было раньше. Доставляется отдельно от самих каналов, обычно в виде файла XMLTV.
Программа передач сопоставляется с каналами по идентификатору, который провайдер присваивает каждому каналу. Когда эти идентификаторы отсутствуют или несогласованны — а это происходит часто, — каналы не показывают информацию о программе, даже если сами данные программы присутствуют и корректны.
Полная программа передач крупного провайдера сама по себе представляет собой солидную загрузку, покрывающую расписание на несколько дней для тысяч каналов.
Смотри также: IPTVПросмотр в записиXtream Codes
-
Просмотр в записи
catch-up, таймшифтинг, архив -
Просмотр того, что уже было в эфире, путём запроса к серверу провайдера на определённое прошлое время для конкретного канала. Существует только там, где провайдер ведёт запись; на твоём устройстве ничего не сохраняется.
Там, где это предлагается, приложение может превратить прошлую программу из телепрограммы в запрос на соответствующий временной интервал этого канала. Типичные архивы охватывают несколько дней.
Это полностью возможность провайдера. Приложение не может добавить просмотр в записи каналу, у которого его нет, а запись в программе передач за прошлую неделю не является доказательством того, что запись существует.
-
DRM
управление цифровыми правами -
Шифрование, которое способен снять только лицензированный софт воспроизведения, используя ключи, полученные с сервера лицензий. FairPlay на платформах Apple, Widevine на Android и в большинстве веб-браузеров.
Поток, защищённый DRM, зашифрован от начала до конца, а ключ выдаётся только софту, доказавшему, что он будет соблюдать прикреплённые к нему правила: никакого сохранения, никакого захвата экрана, иногда никакого вывода на внешний дисплей.
Это не трудность, которую можно обойти, — это работающий механизм. Любой инструмент, утверждающий, что скачивает поток, защищённый DRM, лжёт либо о том, что он делает, либо о том, что этот поток из себя представляет.