Гибридные стеки: почему почти у всех больше одного протокола

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

Последняя проверка: 2026-05-21. Источники: IETF RFC 9725 (WHIP, март 2025), актуальный Internet-Draft draft-ietf-wish-whep (WHEP), IETF RFC 8216 (HLS, август 2017), Apple HLS Authoring Specification for Apple Devices редакция 2025-09, ISO/IEC 23009-1:2022 (DASH), ISO/IEC 23000-19:2024 (CMAF), серия draft-ietf-moq-transport-17 (Media over QUIC, январь 2026), публичная архитектура Cloudflare Stream (приём по RTMPS / SRT / WHIP, воспроизведение HLS / DASH / WHEP), кейс Mux + Lyvecom по live-шопингу и публичная документация LiveKit, Ant Media, Wowza и Flussonic по мульти-протокольным пайплайнам доставки.

TL;DR

В реальном продакшене почти ни один live-видео продукт не работает на одном протоколе – всегда есть протокол контрибьюции, как минимум один протокол доставки и часто второй протокол доставки под другую цель по задержке или под другую аудиторию. Причина не в нерешительности. Каждый отрезок пайплайна – "энкодер → сервер", "сервер → интерактивная аудитория", "сервер → пассивная аудитория", "сервер → пультовая" – имеет собственную цену, задержку, масштаб и покрытие устройств, и ни один протокол не выигрывает по всем четырём осям. Шаблон, который вы будете встречать в 2026 году: RTMPS или SRT на контрибьюции, WebRTC плюс WHEP для маленькой интерактивной аудитории и LL-HLS или LL-DASH поверх CMAF для длинного broadcast-хвоста. Эта статья описывает четыре канонических гибридных шаблона, экономику, которая толкает к каждому из них, и сценарии отказа, возникающие, когда команды пытаются делать вид, что пайплайн монолитный.

Почему это важно

Большинство решений вида "мы выбрали HLS" – не реальная архитектурная позиция, а резюме по одному отрезку стека, в котором рядом живут RTMP на ингесте, WebRTC на экране модератора и WebSocket для чата. Если вы продакт-менеджер, основатель или руководитель эксплуатации live-видео продукта, вам нужно знать, что ответ почти никогда не "один протокол" – это всегда стек, и экономика, задержка и масштаб этого стека зависят от того, какие отрезки вы выбрали и как они стыкуются между собой. Эта статья – канонический справочник Блока 4 по гибридным стекам: что такое "гибрид" в этом контексте, какие комбинации встречаются в 2026 году, зачем они нужны, как они стыкуются внутри сервера и где они ломаются. Она дополняет статью-матрицу (4.13) и статью-дерево решений (4.14) – матрица даёт данные по каждому протоколу отдельно; здесь – архитектура, которая их объединяет.

Что такое "гибридный стек"

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

Гибридные стеки – норма, а не признак нерешительности. Причина – в разделении push и pull, которое разбирает базовая статья блока. Работа под названием контрибьюция (она же ингест) – это путь "энкодер на площадке, в студии или в телефоне → ваш медиа-сервер". Работа под названием доставка (она же egress) – это путь "медиа-сервер → каждый зритель". Требования у них кардинально разные: контрибьюция работает "один к одному" и спокойно терпит несколько сотен миллисекунд буфера; доставка – "один ко многим", и байты надо разогнать по публичному CDN в интернет-масштабе. Протокол, оптимальный для одного, редко годится для второго.

Поэтому почти в любой архитектурной схеме live-видео в 2026 году вы увидите минимум два протокола. RTMPS или SRT идёт от OBS или аппаратного энкодера на origin. HLS, LL-HLS, DASH, LL-DASH, WebRTC или WHEP уходит с origin в сторону зрителей. Внутри origin поток один раз перепаковывают в формат, читаемый обеими сторонами – обычно это фрагментированные MP4-сегменты CMAF. Архитектура, которую вы выпускаете, – это выбор этих двух-трёх протоколов и перепаковки посередине, а не выбор "одного" протокола.

Рис. 1. Канонический гибридный стек 2026 года. Один отрезок контрибьюции, два отрезка доставки, одна общая CMAF-упаковка посередине. Архитектура – это комбинация, а не отдельная линия на схеме.

Четыре шаблона, которые вы будете встречать

Комбинаторика теоретически огромна, но четыре гибридных шаблона покрывают больше 90% live-видео продуктов 2026 года. Каждый существует, потому что продукту нужна именно эта комбинация задержки, масштаба и стоимости.

Шаблон A – интерактивная вершина, broadcast-хвост (live-шопинг, аукционы, town hall)

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

Архитектура: WebRTC или WHEP несёт интерактивное кольцо ведущего и гостей; LL-HLS или LL-DASH – broadcast-хвост. Оба отрезка кормятся одними и теми же CMAF-сегментами внутри origin, поэтому аудио и видео битово идентичны на обеих поверхностях – различается только транспорт.

Почему команды выбирают этот стек: опубликованный кейс Mux с платформой shoppable-видео Lyvecom переводит цену задержки в цифры – когда лаг "поток → чат" переходит 10 секунд, конверсия падает измеримо, и опыт покупателя перестаёт ощущаться как живое событие. Суб-секунда – избыточна для пассивных 90% аудитории и стоит в 10–20 раз дороже HTTP-кэшируемой доставки; чистый LL-HLS – слишком медленный для ведущего и гостей. Гибрид – единственный стек, который попадает в обе цели в рамках одной экономической планки.

Шаблон B – broadcast-основа, интерактивная пультовая (спорт, новости, premium live)

Сценарий: classic one-to-many broadcast, в котором продюсер в пультовой должен видеть эфир с суб-секундной задержкой, чтобы принимать решения по нарезке, вести модерацию и проверять, что именно уходит зрителям. Зрительская аудитория может ехать на LL-HLS с 2–3 секундами задержки; пультовая – не может.

Архитектура: LL-HLS или LL-DASH – публичный зрительский тариф; приватный WHEP-эндпоинт – preview-поверхность для продюсера. Один origin, одни CMAF-сегменты, два формата доставки – один из них специально не кэшируется на CDN.

Почему команды выбирают этот стек: построить параллельный preview-путь на обычном HLS – значит добавить 2–3 секунды "слепого пятна" пультовой, что операционно неприемлемо для live-новостей или спорта. Второй WebRTC-отрезок наружу из origin – маленькая ограниченная инженерная стоимость (аудитория продюсера – десятки, а не миллионы), и она убирает слепое пятно для тех, кто принимает эфирные решения.

Шаблон C – реалтайм-ядро, запись-хвост (видеосвязь, телемедицина, e-learning)

Сценарий: встреча, консультация или урок проходят end-to-end на WebRTC, потому что все участники интерактивны. После сессии запись должна стать обычным VOD-видео – кликом поделиться, посмотреть на телефоне через три недели, – а это означает HLS или DASH.

Архитектура: SFU (Selective Forwarding Unit, топология WebRTC, разобранная в 8.4) несёт встречу. Параллельный recorder подписывается на дорожки SFU, склеивает их в один смешанный поток и пишет фрагментированный MP4 плюс HLS-манифест. После завершения сессии манифест уходит на CDN, и запись проигрывается в любом браузере, телефоне или Smart TV.

Почему команды выбирают этот стек: WebRTC – правильный инструмент для живой встречи (в статье про SFU разбираем, почему); HLS – правильный инструмент для повтора, потому что стоимость воспроизведения по длинному хвосту (через месяцы или годы) на массовом HTTP примерно на два порядка ниже, чем держать живой WebRTC-сервер на каждый просмотр. Здесь протоколы не конкурируют – они делают разную работу в разные моменты времени.

Шаблон D – MoQ A/B параллельно LL-HLS (live с прицелом в будущее)

Сценарий: команда хочет быть готовой к переходу на Media over QUIC, не делая MoQ единственной точкой отказа сегодня. Везём всю аудиторию на проверенном LL-HLS, а небольшой процент трафика гоним параллельно через MoQ как A/B.

Архитектура: энкодер пушит RTMPS или WHIP в origin; origin порождает и CMAF + LL-HLS манифест, и параллельную подписку на MoQ-relay. Плееры, которые включают MoQ (обычно через feature flag), подключаются по QUIC; остальные приземляются на LL-HLS. Дашборд метрик пишет glass-to-glass задержку, startup-время и rebuffering ratio отдельно по каждому отрезку.

Почему команды выбирают этот стек: на момент draft-ietf-moq-transport-17 (январь 2026) MoQ всё ещё идёт через IETF и пока не RFC; продакшен-разворачивания сейчас несут риск несовместимости. Параллельная работа MoQ с LL-HLS позволяет команде нарастить операционные мышцы – relays, код плеера, наблюдаемость, – пока несущий путь остаётся проверенным HTTP-стеком. Первый NAB-class интероп MoQ с 11 вендорами случился в 2026 году; "только MoQ" – это разговор 2027–2028 для большинства продуктов, а "MoQ рядом с LL-HLS" – разговор уже 2026 года.

Как именно работает стыковка внутри origin

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

Дисциплина – "упаковываем один раз, раздаём многократно". Origin транскодирует входящий RTMPS, SRT или WHIP поток в CMAF-источник фрагментированного MP4. Из этого единственного источника origin отдаёт HLS-манифест, DASH-манифест и (если нужно) WHEP-эндпоинт, который заворачивает те же сегменты в WebRTC-сессию доставки. Байты аудио и видео идентичны на каждом отрезке – различаются только формат манифеста, транспорт и фрейминг. Ради этого CMAF и создавался, и поэтому он внутри каждого современного гибридного стека, даже если CMAF никогда не звучит на стороне клиента.

Дисциплина, которая режет затраты, – broadcast-хвост (HLS, LL-HLS, DASH, LL-DASH) работает поверх HTTP, а значит, каждый байт, который отдаёт origin, кэшируется на CDN. Интерактивный тариф (WebRTC, WHEP) – посессионный и не кэшируется, но по дизайну это маленькая аудитория. Это намеренное смешение – маленькая интерактивная аудитория, большая кэшируемая аудитория, общий источник медиа – и есть архитектура, которая даёт суб-секундную отзывчивость ведущему и CDN-уровень экономики толпе.

Рис. 2. Единственный самый важный паттерн в любом гибридном стеке – один энкод, один CMAF-источник, много поверхностей доставки. Построить три отдельных пайплайна "энкодер → доставка" – самый частый способ превратить гибридный стек в неуправляемый облачный счёт.

Экономика – почему гибрид дешевле чистого WebRTC на масштабе

Аргумент в пользу гибридного стека – не эстетический, а долларовый. Посчитаем для типичного live-шопинг-события: один ведущий, 20 интерактивных покупателей в кадре и 50 000 пассивных зрителей в чате.

Интерактивный тариф – 21 участник в кадре – работает на WebRTC-SFU: примерно 2 Mbps аплоада от каждого и сопоставимый даунлоад от каждого другого, плюс ведущий. Аудитория этого тарифа – 21 человек; стоимость – это посекундная цена SFU на 21 участника за длительность события.

Broadcast-хвост – 50 000 пассивных зрителей – работает на LL-HLS поверх CMAF, скажем, на 4 Mbps на зрителя в 1080p. Арифметика:

Совокупная egress-полоса:
  50 000 зрителей × 4 Mbps = 200 000 Mbps = 200 Gbps

Стоимость на массовом tier-1 HTTP-контракте CDN:
  При $0.010 за GB доставленного трафика:
  200 Gbps × 3600 c × 1 час ÷ 8 бит/байт = 90 000 GB в час
  90 000 GB × $0.010 = $900 в час

Теперь предположим, что та же аудитория смотрит тот же поток на чистом WebRTC, без LL-HLS-резерва. Уровень WebRTC-медиа-серверов обслуживает 50 000 одновременных egress-сессий вместо 50 000 кэшируемых HTTP-выборок. Тот же парк серверов обычно стоит в 3–10 раз дороже HTTP-кэшируемой доставки – вендор обязан выделять ёмкость на каждую сессию, а не амортизировать её через кэш. Тот же час, тот же битрейт, та же аудитория, то же железо: от 3 000 до 9 000 долларов вместо 900. Суб-секундная задержка для 50 000 человек, которые в среднем пишут пару сообщений в час, – это переплата в десять раз за фичу, которой не воспользуются 90% из них.

Гибридный стек делит аудиторию по необходимости: 21 человек, кому реально нужна суб-секунда, платит "суб-секундную" цену; 50 000, кому достаточно 2 секунд, платит "двухсекундную" цену. Это разделение и есть вся экономическая логика архитектуры.

Типичная ошибка – обращаться со стеком как с монолитом

Самый частый архитектурный провал в этой области – выпустить live-шопинг продукт (шаблон A) на чистом WebRTC, потому что "нам нужна низкая задержка для всех", разогнать счёт в 10 раз и потом объяснять борду, что streaming-расходы вышли из-под контроля.

Сценарий: кто-то читает, что WebRTC – "протокол с самой низкой задержкой", и обращается с каждой минутой каждого зрителя как с местом, за которое надо доплатить за суб-секунду. Ошибка концептуальная: задержка не константа на аудиторию – она зависит от роли. Ведущий и покупатели в кадре – внутри разговора; им нужна суб-секунда. 50 000 зрителей, которые пишут эмодзи в чат, смотрят разговор; им нужно, чтобы поток приходил раньше, чем прокрутится чат, а не быстрее, чем моргнёт ведущий.

Решение – проектировать архитектуру как функцию роли, а не как функцию размера аудитории. Интерактивный тариф – покупатели, спикеры, модераторы, продюсер – получает протокол, покупающий суб-секундную отзывчивость за цену посессионной ёмкости. Broadcast-тариф – все остальные – получает протокол, покупающий CDN-экономику. Обе аудитории видят один и тот же контент. Продукт ощущается живым для всех; счёт оплачивают те, кому реально нужен реалтайм, а не длинный хвост.

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

Мы выпускали гибридные стеки во всех вертикалях, которые покрывает раздел: live-шопинг с интерактивным WebRTC-кольцом поверх LL-HLS-хвоста, OTT и Internet TV с CMAF-упакованным origin, отдающим HLS и DASH манифесты, телемедицина и e-learning с WebRTC на живой консультации или уроке плюс HLS-запись на повтор, видеонаблюдение с WHEP для preview оператора и HLS для review-стены. Паттерн, который повторяется, тот же, что и в этой статье: упаковать один раз, доставить многократно и разделить аудиторию по роли. Потолок затрат и пол отзывчивости – это решения архитектуры, а не выбор протокола.

Рабочий пример – переход с чистого WebRTC-стека 2018 года на гибрид

Сделаем апгрейд конкретным. Допустим, вы наследуете live-event-продукт 2018 года, где всё – ведущий, покупатели, аудитория – едет на одном WebRTC SFU. Продукт работает на 500 одновременных зрителях. На 5 000 SFU дорожает вдвое; на 50 000 затраты SFU съедают всю выручку.

Шаг 1 – разделить аудиторию. Найти минимальный набор пользователей, кому реально нужна суб-секундная задержка: в live-шопинг продукте это ведущий, покупатели в кадре, модераторы и (если есть) продюсер. Все остальные – аудитория, не участники.

Шаг 2 – добавить поверхность CMAF + LL-HLS. На origin подписаться на видеодорожку ведущего из SFU и перекодировать её в CMAF-источник фрагментированного MP4. Отдавать с этого источника LL-HLS-манифест. Развернуть манифест за массовым HTTP CDN. Аудитория теперь играет с LL-HLS, а не с SFU.

Шаг 3 – оставить чат реалтаймовым. Сервис чата почти наверняка уже на WebSocket; оставьте его там. Суб-секундной нужно быть только аудио и видео людей в кадре; у чата нет бюджета задержки, привязанного к SFU.

Шаг 4 – оставить WebRTC для интерактивного кольца. Не удаляйте SFU. Ведущий и покупатели в кадре всё ещё публикуют и подписываются через него. Архитектура теперь гибрид: WebRTC – интерактивное кольцо, LL-HLS – broadcast-хвост, WebSocket – чат.

Шаг 5 – измерить счёт. Парк SFU теперь обслуживает ведущего и покупателей в кадре – обычно 20–50 одновременных publisher-ов и subscriber-ов – вместо 50 000. Парк LL-HLS обслуживает 50 000 на массовом HTTP. Изменение – снижение egress-расходов в 6–10 раз при той же аудитории и том же продукт-опыте.

Это канонический шаблон модернизации 2026 года для любого live-event-продукта, который начинал на чистом WebRTC и упёрся в потолок затрат: делить по роли, упаковывать один раз, доставлять многократно.

Сравнение – какой шаблон под какой продукт

Четыре шаблона выше соответствуют четырём профилям продукта. Эта таблица – стартовая точка для выбора архитектуры новой сборки.

Профиль продуктаИнтерактивный тарифBroadcast-тарифПовторШаблон
Live-шопинг, аукционы, town hallWebRTC / WHEP для ведущего + покупателей в кадреLL-HLS или LL-DASH для пассивной аудиторииОпциональный HLS VODШаблон A
Premium-спорт, live-новостиПриватный WHEP для пультовой и preview модератораLL-HLS или LL-DASH для зрительского тарифаHLS VOD-нарезкиШаблон B
Видеосвязь, телемедицина, e-learningWebRTC SFU end-to-endНет (каждый зритель – участник)HLS-запись для повтораШаблон C
Live с прицелом в будущее (спорт, реалтайм)WebRTC или WHEP (опционально)LL-HLS – несущий путь; MoQ – параллельный A/BHLS VOD или MoQ recorded objectsШаблон D
OTT live linear (каналы, FAST)Нет (по дизайну нет интерактивного тарифа)HLS для Apple / iOS, DASH для Android / TV, CMAF внутриHLS VODГибрид HLS + DASH без WebRTC

Строка, которую чаще всего забывают, – нижняя: даже OTT-канал, где вообще нет интерактивного тарифа, – это гибридный стек, потому что устройства Apple ждут HLS-манифест, а Android и большинство Smart TV предпочитают DASH-манифест. CMAF-упаковка посередине – то, что позволяет обслуживать обе аудитории без повторного кодирования.

Ключевые тезисы

  • Почти ни один реальный live-видео продукт не работает на одном протоколе; канонический стек 2026 года – контрибьюция + интерактивная доставка + broadcast-доставка + чат.
  • Причина существования гибридных стеков – задержка по роли: маленькому интерактивному кольцу нужна суб-секунда; длинному broadcast-хвосту – CDN-экономика.
  • Шаблон A (WebRTC + LL-HLS) – это live-шопинг и аукционы; шаблон B (LL-HLS + приватный WHEP preview) – premium-broadcast; шаблон C (живой WebRTC + HLS-запись) – видеосвязь.
  • Стыковка – CMAF внутри origin: упаковка один раз, доставка многократно – три отрезка из одного источника fragmented MP4.
  • Чистый WebRTC-стек на 50 000 зрителей обычно стоит в 3–10 раз дороже гибридного WebRTC + LL-HLS при том же продукт-опыте.
  • MoQ в 2026 году – это параллельный A/B рядом с LL-HLS, а не замена.

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

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

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