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 вы можете узнать здесь.