Рендишны под устройство: телефон, планшет, ТВ

Автор: Николай СапуновОбновлено: август 202616 мин чтения
Содержание статьи +

TL;DR

Рендишн – это одна закодированная копия видео с фиксированными разрешением, битрейтом и кодеком, то есть одна ступень лестницы качества (encoding ladder), между которыми переключается плеер, – и ошибка, тихо раздувающая счёт за доставку OTT, в том, чтобы слать одну и ту же полную лестницу на все устройства, когда большинство из них могут использовать лишь её часть. Верхняя ступень, которую устройство вообще должно получать, – это минимум из трёх независимых потолков: экрана (пиксели, которые панель реально покажет), декодера (что умеет декодировать чип) и лицензии (максимальное разрешение, которое DRM-лицензионный сервер выдаст устройству с его уровнем безопасности). 4K-ступень на телефоне – впустую, потому что экран её не разрешит, а 240p-ступень, которую хочется выкинуть, – единственная, что быстро стартует на перегруженной сотовой сети; правила Apple делают вариант ниже 192 кбит/с обязательным для cellular. Решение – одна мастер-лестница плюс субнаборы под устройства, которые доставляются либо плеером, выбирающим под свой экран, либо платформой, фильтрующей манифест под устройство, чтобы вы никогда не кодировали, не хранили и не доставляли рендишн, который никто не сможет воспроизвести. Статья показывает, как задать три потолка под класс устройства, как субнабор доставляется и какая арифметика превращает урезанную лестницу в меньший месячный счёт.

Зачем это важно

Каждый добавленный рендишн умножает сразу три статьи расходов – компьют на кодирование по всему каталогу, хранение и egress на доставку, – поэтому лестница, несущая ступени, которые ваши устройства не играют, – это деньги, ежемесячно уходящие впустую. Обратная ошибка не дешевле по оттоку: уберёте нижние ступени – и зритель на слабом соединении смотрит на спиннер вместо чуть размытой картинки и уходит. Статья – для основателя, продакт-менеджера или CTO стриминга, которому надо решить, сколько рендишнов несёт каталог и какие устройства какие получают, а не для инженера, настраивающего энкодер. Внутреннюю механику кодеков и ABR мы держим на расстоянии вытянутой руки (она живёт в разделах Video Encoding и Video Streaming) и фокусируемся на продуктовом решении: сопоставлении производимых ступеней с устройствами, которые вы реально обслуживаете. К концу вы сможете читать план лестницы и задавать единственный вопрос, контролирующий счёт: каждая ли ступень заслуживает места на устройствах, которые её запросят?

Что такое рендишн и что значит «под устройство»

Начнём со ступени. Готовя тайтл к стримингу, вы не кодируете его один раз. Вы кодируете его несколько раз на разных уровнях качества, и каждая такая закодированная копия – это рендишн: одна версия с фиксированным разрешением (скажем, 1280×720), фиксированным битрейтом (скажем, 3 Мбит/с) и фиксированным кодеком (скажем, H.264). Сложите эти рендишны от низшего к высшему – и получите encoding ladder, набор вариантов, по которому плеер лезет вверх и вниз, пока сеть ускоряется и замедляется. Если лестница вам в новинку, начните с encoding ladder простыми словами; эта статья её предполагает и задаёт следующий вопрос.

Следующий вопрос такой: должно ли каждое устройство получать одни и те же ступени? Инстинкт говорит «да» – построй одну хорошую лестницу, отдай всем, пусть каждый плеер выбирает. Это неверный инстинкт, и причина проста. Ступень полезна только устройству, которое может её показать, декодировать и которому разрешено её получить. Отдайте телефону 4K-ступень – и вы произвели и сохранили байты, от которых телефон никогда не выиграет. «Под устройство» означает сопоставление поставляемых ступеней с тем, что каждый класс устройств реально умеет использовать.

Думайте о лестнице как о классах кресел в самолёте. Все на одном рейсе – на одном тайтле, – но салоны различаются ценой и комфортом, и вы не продаёте кресло первого класса пассажиру, который проведёт полёт в кухне. Искусство стратегии рендишнов – продать каждому устройству ровно те салоны, в которых оно может сидеть, и не строить салоны, которые ни один пассажир не забронирует.

Рис. 1. Один тайтл становится множеством рендишнов. Каждая ступень – разрешение + битрейт + кодек; плеер лезет по лестнице по мере возможностей сети. Статья отвечает, какие ступени должно видеть каждое устройство.

Три потолка, задающие верхнюю ступень устройства

Вот центральная идея всей статьи. Для любого устройства высшая ступень, которую оно должно получать, задаётся тремя независимыми потолками, и поставляемая ступень – это минимум из трёх. Промахнётесь хотя бы по одному – либо потратите байты впустую, либо сломаете воспроизведение.

Первый потолок – экран, число пикселей, которое панель физически способна показать. Шестидюймовый экран телефона имеет куда меньше пикселей, чем 65-дюймовый телевизор, и за определённой точкой лишнее разрешение ложится на пиксели, которых у экрана нет. На обычном расстоянии просмотра глаз не различает детали 4K на экране размером с телефон; 4K-ступень и 1080p-ступень в руке выглядят одинаково, но 4K-ступень стоит вдвое-втрое больше байтов. Потолок экрана – про впустую потраченные деньги: всё выше него – невидимое качество, за доставку которого вы платите.

Второй потолок – декодер, то, что чип устройства реально умеет превращать обратно в картинку. Рендишн, который декодер не тянет, – это не размытая картинка, а чёрный экран или жёсткий отказ воспроизведения. Декодеры ограничены кодеком (старый телевизор без AV1-декодера не сыграет AV1-ступень), а внутри кодека – профилем и уровнем (profile/level), закодированным потолком на разрешение, частоту кадров и битрейт. Правила Apple, например, ограничивают HEVC профилем Main10, уровнем 5.0, High Tier для своих устройств; поток выше этого уровня может быть отклонён. Дешёвая приставка может декодировать H.264 только до 1080p и наотрез отказать 4K-ступени. Потолок декодера – про то, чтобы не слать ступень, на которой подавится железо.

Третий потолок – лицензия, максимальное разрешение, которое система защиты контента позволит получить именно этому устройству. Премиум-каталоги зашифрованы, и система, выдающая ключи для расшифровки, называемая digital rights management (DRM), не относится ко всем устройствам одинаково. Устройству, которое расшифровывает в защищённом железе, доверяют высокие разрешения; тому, что расшифровывает в софте, – нет, и лицензионный сервер просто отказывается выдавать ключи для верхних ступеней. Это реальный, принудительный потолок, и он разбирается отдельно в статье зачем нужен DRM и что он на самом деле защищает. Ниже мы разберём, как он ограничивает разрешение.

Ступень, которую вы даёте устройству, – минимум из этих трёх. У телефона может быть экран класса 1080p (потолок экрана 1080p), AV1-декодер до 4K (потолок декодера 2160p) и софтовый DRM, ограничивающий его до SD для премиум-тайтлов (потолок лицензии 480p). Побеждает потолок лицензии: для этого тайтла на этом телефоне вы отдаёте 480p, а верхние ступени – чистая трата. Замените тайтл на тот, что без DRM, – и побеждает потолок экрана на 1080p. Потолки независимы и двигаются для каждого тайтла и устройства.

Рис. 2. Ступень, которую устройство должно получить, – минимум из трёх потолков: пиксели, которые покажет экран, потоки, которые декодирует чип, и разрешение, которое выдаст DRM-лицензия. Планируйте по минимуму, а не по максимуму.

Почему 4K-ступень на телефоне впустую (потолок экрана)

Самый ясный случай – телефон. Панели телефонов 2026 года на практике упираются примерно в 1080p полезной детализации на той дистанции, с которой их держат. Производители заявляют большее число пикселей, но человеческий глаз на расстоянии вытянутой руки не отличит 1080p от 4K на шестидюймовом экране. Так что 4K-рендишн, доставленный на телефон, тратит примерно вдвое-втрое больше байтов, чем 1080p-ступень, чтобы показать детали, которые зритель не увидит.

Эта трата невидима на одном стриме и разорительна на масштабе. Поставим цифры. 4K-ступень в H.264 идёт около 16 Мбит/с; 1080p-ступень – около 6 Мбит/с. Один час просмотра – это битрейт, растянутый на 3 600 секунд:

4K-ступень    = 16 Мбит/с × 3 600 с ÷ 8 = 7 200 МБ ≈ 7,2 ГБ / час
1080p-ступень =  6 Мбит/с × 3 600 с ÷ 8 = 2 700 МБ ≈ 2,7 ГБ / час
впустую       = 7,2 ГБ − 2,7 ГБ         = 4,5 ГБ / час, при нулевом видимом выигрыше
при $0.04 за ГБ egress = 4,5 × $0.04   = $0.18 / час за каждый ошибочно отданный стрим

Восемнадцать центов в час кажутся пустяком, пока не умножишь на реальную аудиторию. Сервис, стримящий миллион телефоно-часов в месяц и позволяющий телефонам тянуть 4K-ступень, сжигает около $180 000 в месяц, показывая детали, которые ни один телефон не отобразит. Решение – вообще не слать 4K-ступень на телефоны: ограничьте телефонный субнабор 1080p, и трата исчезает. Потолок экрана – самый дешёвый для соблюдения и чаще всего игнорируемый.

Та же логика, мягче, применима выше по классам устройств. Планшеты крупнее и держатся дальше, поэтому 1080p – честный потолок для большинства, а крупнейшие «retina»-планшеты оправдывают 1440p-ступень. Web-воспроизведение зависит целиком от монитора и размера окна – видео в маленьком окне на ноутбуке требует куда меньше, чем то же видео на весь экран на 4K-мониторе. Телевизоры и современные стриминговые устройства – там, где 4K-ступень наконец заслуживает места, потому что панель достаточно велика и достаточно далека, чтобы лишние пиксели были видны.

Почему 240p-ступень всё ещё важна (пол)

Если верх лестницы задаёт лучшее устройство, то низ задаёт худшая сеть. Соблазнительно убрать нижние, уродливые ступени – никто не хочет смотреть 240p. Но нижняя ступень нужна не тем, кто её хочет; она нужна тем, кто иначе не получит ничего.

Зритель в перегруженной электричке, со слабым сотовым сигналом или с бюджетным Android-телефоном на развивающемся рынке не имеет полосы под вашу 1080p-ступень. Без нижней ступени, на которую можно откатиться, его плеер буферизуется, заикается, и сессия брошена. С 300-кбит/с ступенью он получает смотрибельную, мягкую картинку, которая держится, пока соединение восстанавливается. Нижняя ступень – это разница между мягким стримом и мёртвым.

Нижняя ступень – это ещё и то, что заставляет воспроизведение стартовать быстро. Плеер начинает с консервативной ступени и лезет вверх по мере измерения полосы, так что чем ниже ваш пол, тем быстрее появляется первый кадр – а время старта один из сильнейших предикторов того, останется ли зритель; эту связь мы оцифровываем в quality of experience: startup time и ребуферинг.

Это не просто хорошая практика; для устройств Apple это правило. HLS Authoring Specification от Apple требует, чтобы любой поток, доставляемый по сотовой сети, включал вариант с пиковой полосой 192 кбит/с или ниже. Поставьте лестницу без ступени ниже 192 кбит/с – и вы вне спецификации для cellular-доставки, и вы бросили ровно тех зрителей, которым пол был нужнее всего. Держите пол. Ступени внизу почти ничего не стоят в производстве и хранении, и это ваша страховка от оттока на плохих сетях.

Потолки декодера и лицензии на практике

Экран говорит, что стоит слать; декодер и лицензия говорят, что устройство может принять. Оба способны перебить экран, и оба тихо ломают воспроизведение, если их игнорировать.

Потолок декодера – в основном вопрос кодека и уровня, и он меняется с возрастом устройства. Smart TV 2018 года может декодировать HEVC, но не AV1; приставка 2015 года может упирать H.264 в 1080p; нынешний флагман-телефон декодирует AV1 в железе до 4K. Практическое правило – знать по классу устройств, какие кодеки декодируются аппаратно и до какого разрешения и частоты кадров, и никогда не предлагать ступень выше этого. Это устройственная сторона решения о кодеках из стратегии кодеков для OTT; сама механика кодеков живёт в Video Encoding. Манифест – плейлист, перечисляющий все ступени, – точно объявляет кодек и разрешение каждого рендишна, чтобы плеер мог пропустить ступени, которые его декодер не тянет: в HLS через атрибуты CODECS и RESOLUTION элемента EXT-X-STREAM-INF (RFC 8216), в MPEG-DASH через codecs, width и height каждого Representation (ISO/IEC 23009-1).

Потолок лицензии – тот, что команды забывают, и для премиум-контента он может быть самым низким из трёх. DRM-системы оценивают каждое устройство по тому, насколько защищённо оно расшифровывает. Widevine от Google, например, определяет уровни безопасности: L1, где расшифровка происходит целиком в защищённом железе, и L3, где она происходит в софте. Студии через лицензионные условия рутинно ограничивают L3-устройства стандартным разрешением – обычно 480p, иногда до 720p, – а HD и 4K резервируют за L1. Принуждение реально и серверное: лицензионный сервер выдаёт отдельный ключ на каждый разрешенческий тир и просто отказывает в HD-ключе L3-устройству, так что HD-ступень, запрошенная браузером с софтовым DRM, проваливает лицензионный запрос, а не играет. Хорошо построенный плеер заранее определяет уровень безопасности устройства и ограничивает выбор рендишнов соответственно. Вывод для лестницы: для DRM-защищённого каталога ступени, которые устройство может получить, зависят от его DRM-уровня, а не только от экрана, – один и тот же Windows-ноутбук может получить 4K в пути с аппаратным DRM и 480p в софтовом. Карта «устройство → DRM», от которой это зависит, – тема статей три системы DRM и multi-DRM: один воркфлоу, любое устройство.

Классы устройств, отображённые на субнаборы лестницы

Сложите три потолка по классу устройств – и появляется ясная карта. Таблица ниже – планировочный вид: для каждого класса практический потолок экрана, типичная реальность декодера в 2026, обычный потолок DRM для премиум-контента и итоговые ступени к поставке. Колонка «слать эти ступени» – вид охвата: она удерживает вас от кодирования рендишнов, которые класс никогда не сможет использовать.

Класс устройстваПотолок экрана (полезный)Реальность декодера (2026)Потолок DRM (премиум)Слать эти ступени
Телефон~1080p (предел глаза в руке)H.264 всегда; HEVC/AV1 в железе на свежих флагманахL1 → HD/UHD; L3 → SD на бюджетных/старых240p → 1080p
Планшет~1080p; 1440p на крупных retinaH.264 всегда; HEVC/AV1 в железе частоL1 → HD часто; L3 → SD на бюджетных240p → 1080p (+1440p крупные)
Web (браузер)зависит от окна; 720p–4KH.264 повсеместно; AV1/HEVC по-разному; плеер не ограничивает по умолчаниюсофтовый DRM часто L3 → SD; аппаратный путь варьируется240p → 1080p (ограничить, кроме HW DRM + 4K-монитор)
Smart TV1080p–4K (зависит от панели)HEVC почти повсеместно; AV1 на наборах 2022+L1 → HD/UHD типично360p → 2160p
Стик / приставка1080p–4K (зависит от модели)резко варьируется по модели и годуL1 → HD/UHD на сертифицированных360p → 2160p (1080p-потолок на старых)

Таблица 1. Классы устройств, отображённые на субнаборы лестницы. Потолки – практические планировочные диапазоны 2026, не гарантии: проверяйте поддержку декодера и DRM-уровня по актуальным данным об устройствах, потому что оба двигаются с каждым поколением. Колонка «слать эти ступени» предполагает мастер-лестницу примерно от 240p до 2160p.

Две строки стоит пометить флагом. Строка web – ловушка: в отличие от нативных мобильных плееров, браузерные плееры по умолчанию не ограничивают себя размером окна, так что неограниченный web-плеер может затянуть вашу 4K-ступень в маленькое окно ноутбука – платя egress за 4K ради картинки размером с открытку. А строка стик / приставка – самая фрагментированная: «приставка» охватывает и стик за $20, и премиум-бокс оператора, так что считайте её несколькими подклассами, а не одним.

Рис. 3. Одна мастер-лестница, много субнаборов под устройства. Телефоны и планшеты упираются около 1080p; ТВ и современные стриминговые устройства достают до 2160p; web ограничивают, если только 4K-монитор и аппаратный DRM не оправдывают верхние ступени.

Как субнабор реально доставляется

Знать субнабор каждого устройства – половина дела; вторая половина – добиться, чтобы устройство получило только этот субнабор. Есть два механизма, и большинство платформ используют оба.

Первый – плеер выбирает сам. Хороший нативный плеер знает свой экран и декодер и отказывается лезть выше них. ExoPlayer от Android (теперь Media3) по умолчанию ограничивает разрешение видео размером экрана, так что плеер на телефоне не выберет ступень больше экрана, если вы это не переопределите. AVPlayer от Apple ведёт себя похоже на iOS. Это бесплатно и автоматически на нативном мобильном – но, что важно, это не автоматически в вебе. Open-source браузерные плееры вроде hls.js и Shaka Player по умолчанию не ограничивают разрешение (у Shaka maxHeight по умолчанию безлимитен; добавлен опциональный режим «restrict to element size»), так что в вебе вы обязаны настроить ограничение сами, иначе плеер с радостью утянет 4K-ступень в крошечное окно.

Второй – платформа фильтрует манифест. Вместо того чтобы доверять каждому клиенту вести себя правильно, платформа может отдать каждому классу устройств манифест – меню доступных ступеней, – где уже перечислены только те ступени, которые этот класс должен использовать. Запрос телефона возвращает манифест с потолком 1080p; запрос ТВ возвращает полную лестницу. Это делается манипуляцией манифеста на упаковщике или edge CDN, по устройству, с которого пришёл запрос. Это гарантирует субнабор независимо от поведения клиента и есть подход «с двойной страховкой» для DRM-защищённого или чувствительного к стоимости каталога. Манифест – ещё и место, где объявлены разрешение и кодек каждой ступени, так что даже самостоятельно выбирающий плеер имеет нужные метаданные: атрибут RESOLUTION в HLS необязателен, но рекомендован ровно для того, чтобы плееры выбирали хорошо (RFC 8216).

На практике: опирайтесь на самостоятельный выбор плеера на нативном мобильном, где он автоматический, всегда явно настраивайте ограничение в вебе и используйте фильтрацию манифеста под устройство как гарантию для премиум- и высоконагруженных каталогов, где неограниченный клиент – реальная статья расходов.

Разобранный пример: во что обходится слишком широкая лестница

Цена ошибки не теоретическая. Возьмём каталог на 10 000 часов и спросим, во что обходится одна лишняя ступень ещё до того, как хоть один зритель нажал play.

Допустим, вы добавляете 4K-ступень в HEVC, около 12 Мбит/с, во весь каталог «на всякий случай», хотя 80% аудитории смотрит на телефонах и планшетах, которые её не используют. Одно только хранение:

4K HEVC-ступень = 12 Мбит/с × 3 600 с ÷ 8 = 5 400 МБ ≈ 5,4 ГБ на час контента
каталог         = 10 000 часов × 5,4 ГБ     = 54 000 ГБ ≈ 54 ТБ хранятся, каждый месяц

Эти 54 ТБ лежат в хранилище независимо от того, играет ли их кто-то, плюс разовый компьют на транскод, чтобы произвести их по 10 000 часов, – и на этой аудитории ступень обслуживает максимум 20% на ТВ. Для телефонно-планшетного большинства она закодирована, сохранена и оплачена, чтобы быть отданной ноль раз.

Теперь добавьте сторону доставки. Если неограниченный web-плеер позволяет зрителям с ноутбуков тянуть эту 4K-ступень в полуэкранное окно, скажем, на 200 000 часов в месяц, против 1080p-ступени, которая им реально была нужна:

4K-ступень    = 12 Мбит/с × 3 600 ÷ 8 = 5,4 ГБ/час
1080p-ступень =  6 Мбит/с × 3 600 ÷ 8 = 2,7 ГБ/час
впустую       = (5,4 − 2,7) ГБ × 200 000 часов = 540 000 ГБ
при $0.04 за ГБ = 540 000 × $0.04 = $21 600 / месяц, при нулевом видимом выигрыше

Урежьте лестницу до субнаборов под устройства – и обе цифры сжимаются: вы перестаёте хранить 4K-ступень для контента, который смотрят только телефоны, и перестаёте доставлять её в окна, которые не могут её показать. Экономия не разовая – она повторяется на каждом часе хранения и каждом часе доставки, поэтому стратегия рендишнов – одно из самых рычажных решений в модели стоимости OTT.

Частая ошибка: одна лестница на все устройства

Самая дорогая ошибка с рендишнами – та, что кажется самой безопасной: построить одну щедрую лестницу и слать её на всё. Она проваливается сразу в трёх направлениях.

Сверху она шлёт ступени, которые устройство не может использовать, – 4K-ступень на телефоны, AV1-ступень на ТВ без AV1-декодера, HD-ступень браузеру с софтовым DRM, которому лицензионный сервер откажет. Первое тратит деньги, второе и третье ломают воспроизведение. Снизу инстинкт «одной хорошей лестницы» часто убирает уродливые нижние ступени, бросая зрителей на слабых сетях и выводя вас из спецификации для cellular на устройствах Apple. А посередине она игнорирует, что web-плеер не ограничит себя сам, так что даже разумная лестница утекает 4K-egress в окна ноутбуков.

Более тонкая версия – считать «smart TV» или «приставку» одним классом. Стик за $20 и премиум-бокс оператора имеют дико разные потолки декодера и DRM; одна лестница на оба либо морит хорошее устройство голодом, либо ломает дешёвое. Решение везде одно: одна мастер-лестница, затем субнаборы под устройства, заданные минимумом из потолков экрана, декодера и лицензии, доставляемые самостоятельно выбирающими плеерами на нативном мобильном и фильтрацией манифеста там, где нужна гарантия. Вы добавляете качество там, где устройство может его использовать, и вычитаете байты везде, где не может, – и проверяете аудиторию, которая у вас реально есть, прежде чем решать, какие ступени строить, та же дисциплина, что стоит за per-title и context-aware кодированием.

Где здесь Фора Софт

Сопоставление рендишнов с реальным смешанным парком устройств – телефоны и бюджетные Android, планшеты, браузеры, дюжина моделей smart TV и стриминговых стиков, у каждого свой потолок экрана, декодера и DRM, – и делать это по каталогу, достаточно большому, чтобы каждая лишняя ступень была повторяющимся счётом, – это та инженерия, которой Фора Софт занимается с 2005 года, на 250+ выпущенных проектах для 400+ клиентов в видеостриминге, OTT/Internet TV, e-learning, телемедицине и видеонаблюдении. Эта работа – ровно про это: проектирование мастер-лестницы, отображение классов устройств на субнаборы ступеней, разводка фильтрации манифеста под устройство на edge и ограничение web-плееров, которые не ограничат себя сами, – чтобы каталог доставал до каждого экрана, не платя за доставку пикселей, которые ни один экран не покажет. Когда медиакомпании нужна стриминговая платформа, чья стоимость доставки масштабируется вместе с аудиторией, а не обгоняет её, эта инженерия рендишнов и доставки – то, что мы приносим.

Ключевые выводы

  • Рендишн – это одна закодированная ступень; «под устройство» значит слать каждому только те ступени, что оно может использовать.
  • Верхняя ступень устройства – минимум из трёх потолков: экран, декодер и DRM-лицензия.
  • 4K-ступень на телефоне впустую – экран её не покажет, но вы платите за доставку.
  • Держите нижние ступени: они предотвращают отток на слабых сетях, а ступень ниже 192 кбит/с обязательна для cellular на Apple.
  • Web-плеер не ограничивает себя сам – настройте ограничение, иначе он тянет 4K в маленькое окно.
  • Доставляйте субнаборы самостоятельно выбирающими нативными плеерами плюс фильтрацией манифеста под устройство ради гарантии.

Что почитать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.