2019-11-01 17:41:00
В данной статье мы рассмотрим базовые принципы применения Wowza Streaming Engine для построения медиапортала. Чтобы не усложнять понимание, мы не будем затрагивать вопросы биллинга и монетизации сервиса, а также глубоко разбирать техническую сторону.
Ниже представлена общая схема работы медиапортала, а также порядок обработки пользовательского запроса на просмотр потока или видеоролика. Как видно, медиасервер Wowza Streaming Engine является лишь исполнительным механизмом, обеспечивая передачу видео- и аудиоданных на устройства конечных пользователей, а не центральным звеном портала, отвечающим за логику взаимодействия с пользователем. Wowza Streaming Engine не работает под управлением движка вебсайта или сервера базы данных и не предоставляет пользовательский интерфейс. Однако именно он позволяет решить задачу доставки потокового видеоконтента на клиентские устройства пользователей.
У многих складывается впечатление, что программное обеспечение "медиасервер" должно обеспечивать полный список средств для создания портала, включая интерфейс конечного пользователя, бизнес-логику и CMS управления видеоконтентом. Но это не так, и за разные части портала отвечают отдельные компоненты, которые, однако, отлично интегрируются между собой. Итак, чего не предоставляет продукт Wowza Streaming Engine:
Медиасервер Wowza Streaming Engine предназначен для выполнения следующих действий:
Рассмотрим подробнее, как происходит процесс обработки данных на сервере Wowza.
Для примера остановимся на одном из самых распространенных сценариев с исходным потоком UDP Multicast SPTS с компрессией MPEG-2. Такой исходный поток для вещания в интернете не подходит однозначно. Во-первых, высокий битрейт, во-вторых, UDP нельзя передать через внешние сети без потерь, и часто провайдеры совсем блокируют передачу UDPпакетов, в-третьих, поток, кодированный видеокодеком MPEG2, не может быть воспроизведен плеером на веб-странице или в мобильном устройстве. Все эти параметры исходного потока могут быть преобразованы Wowza сервером, также можно сформировать несколько дополнительных Live потоков с более низкими параметрами качества. Это поможет передать контент по узким каналам связи (в том числе с переменной полосой пропускания).
Транскодирование и конвертация формата потока средствами Wowza Streaming Engine:
Более подробно о транскодировании в Wowza можно узнать, перейдя по этой ссылке.
Запись потока и просмотр видеофайловWowza Streaming Engine позволяет записывать live поток в MP4 файл, который можно в дальнейшем просматривать прямо с Wowza сервера или скопировать для редактирования, обмена, архивации и т. д. Поддерживается запись с автоматическим формированием фрагментов по времени и запись транскодированного потока сразу в нескольких качествах. Просмотр VOD контента (MP4 видеофайлов) в сети Интернет непосредственно с Wowza по протоколу потоковой передачи видео (стриминг) имеет множество преимуществ по сравнению с просмотром с размещением файла на обычном веб-сервере методами обычной загрузки и прогрессивной загрузки. Прежде всего, это контроль ресурсов сети, так как каждый пользователь в этом случае не может потреблять сетевых ресурсов больше, чем битрейт кодирования файла. Тем самым исключаются пики потребления сетевых ресурсов, характерные для скачивания файлов с обычного веб-сервера. Защищенность контента от несанкционированного скачивания намного выше, так как файл не скачивается на устройство просмотра целиком. Значительно повышается удобство просмотра пользователями, так VOD контент можно отдавать в виде мультибитрейт потока (ABR). В этом случае проигрыватель или устройство просмотра автоматически выбирает правильный битрейт для воспроизведения в соответствии с текущими условиями подключения к сети. Также Wowza позволит при необходимости добавлять субтитры и несколько языковых дорожек с переводом. Имеется поддержка работы с сетевым диском S3, Azure и т. д.
Защита потока от несанкционированного просмотра
Во многих случаях медиаконтент сайта должен быть доступен для просмотра только для авторизованных пользователей. Доступ к медиаконтенту осуществляется по ссылке на ресурс под управлением Wowza Streaming Engine, и простое копирование данной ссылки, как минимум, не должно приводить к просмотру live потока или vod видеофайла любым желающим. Wowza предоставляет несколько способов защиты контента, а именно:
Узнать технические подробности реализации того или иного метода защиты контента вы сможете в нашей статье.
Масштабирование нагрузки и резервирование.
Лицензия Wowza Streaming Engine не имеет ограничений на количество потоков и пользователей, просматривающих поток. Максимальное количество зрителей определяется аппаратными ресурсами сервера, разрешением/битрейтом кодирования потока и, прежде всего, пропускной способностью сети (сетевая карта сервера и порт подключения к Интернет). Так как почти всегда вещание в Интернет осуществляется по принципу unicast, количество зрителей, поддерживаемое сервером, можно рассчитать по простой формуле:
Битрейт потока * максимальное количество зрителей одновременно < 80% пропускной способности сети (меньшее из значений: сетевая карта или порт Интернет).
Значения битрейта для типовых разрешений потоков:
Разрешение потока | Битрейт потока |
8K | 21 – 50 Mbps |
4K | 13 – 34 Mbps |
1080p | 3 – 6 Mbps |
720p | 1.5 – 4 Mbps |
420p | 0.5 – 2 Mbps |
360p | 0.4 – 1 Mbps |
Если стоит задача построения масштабируемой системы, которая рассчитана на огромное количество одновременных просмотров, то возможны два подхода: создать собственную инфраструктуру потокового вещания или использовать сторонние сервисы доставки контента - CDN (включая социальные сети YouTube, VK и т. д. в качестве CDN):
Составной частью Wowza Streaming Engine является специальный модуль - Wowza Dynamic Load Balancing AddOn, который позволяет создать собственную инфраструктуру доставки контента – фактически приватную CDN сеть. Рассмотрим создание собственной инфраструктуры, чтобы понять, как могут работать несколько серверов Wowza в качестве единого решения.
На рисунке выше отображена общая схема работы системы при балансировке нагрузки. Группы абонентских устройств имеют условное деление и жестко не привязаны по их типу к определенному серверу. Первоначально запрос на получение потока направляется на Edge с Wowza Dynamic Load Balancing AddOn независимо от того, где находится потребитель контента и какое у него устройство просмотра. Wowza Dynamic Load Balancing AddOn принимает запрос, анализирует и определяет, через какой именно Edge сервер пользователь будет получать поток для просмотра. Благодаря такому подходу система может горизонтально масштабироваться простым добавлением Edge серверов. Дополнительно обеспечивается резервирование системы: в случае выхода из строя одного из Edge серверов все пользователи перенаправляются на другие. Более подробно о Wowza Dynamic Load Balancing AddOn вы можете узнать здесь.