Поддержка панорамного видео 360° в Wowza Streaming Engine

2016-10-13 21:49:00

Довольно давно создатели видеоконтента пробуют различные варианты, позволяющие наиболее глубоко погрузиться в просмотр видео. Повышение разрешения, добавление объема (3D), а теперь еще и панорамные съемки. Благодаря тому, что размер кадра можно не ограничивать стандартным размером экрана телевизора или другого устройства воспроизведения, появляется возможность съемки с захватом изображения вплоть до 360x360 градусов. В этом случае зритель находится в центре сферы, на которую проецируется картинка. Он может вращать головой, чтобы посмотреть ту ее часть, которая интересна в данный момент. Это позволяет не просто взглянуть на мероприятие глазами оператора, а смотреть именно то, что привлекает зрителя в эту минуту. Cоздать виртуальную реальность (VR) и поместить в нее реального зрителя. Например, камера, установленная в концертном зале, фактически дает возможность достичь эффекта присутствия и смотреть на происходящее, как будто вы находитесь в зале на том месте, где установлено съемочное оборудование.

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

На сегодняшний день не придумана камера с единой матрицей для панорамной съемки, поэтому используется несколько устройств, изображение с которых в дальнейшем склеивается (stitching) в единую картинку. Как и при классической съемке, качество зависит от аппаратуры. Это типы объективов, количество и правильное расположение камер, и так далее. Важную роль играет качество склейки, то есть программное обеспечение.

Рынок подобных решений нельзя назвать насыщенным, однако есть как камеры для любительской съемки, так и профессиональные решения, представляющие собой сложные сборные конструкции. Среди бюджетного сегмента есть камеры LG, Samsung. Они не умеют передавать live-потоки, а могут только осуществлять запись, которую потом можно опубликовать на каком-либо видеохостинге.

Есть и более дорогие камеры типа ORAH 4i. Камера является более продвинутой по параметрам, а также может использоваться для публикации live-потока на медиасервер по протоколу RTMP.

Кроме того, компания 360 Designs выпускает риги и готовые сборки на базе камер Blackmagic Cinema 4K и Studio 4K. Есть разные типы конструкций, содержащие от 3 до 42 камер. А если учесть, что каждая из них оснащена матрицей 4К, то результирующий сигнал будет иметь просто невероятное значение и степень детализации. Впрочем, подобное оборудование будет иметь как высокую цену, а также приведет к необходимости привлечения высококвалифицированных и опытных сотрудников для сборки, обслуживания и эксплуатации.

Есть и еще одна сложность: сигнал с камер должен быть склеен и перекодирован в формат, пригодный для стриминга. Для этой цели можно воспользоваться специальным программным обеспечением, например, Vahana VR. Это Windows-приложение, которое позволяет осуществить захват множества источников, склеить их и наложить на поверхность сферы. Далее материал пишется в файл, а также передается в виде компрессированного RTMP-потока на медиасервер.

RTMP-протокол позволяет передать поток на сервер Wowza Streaming Engine. Для любого подобного сервиса это тот же самый поток (тот же протокол, тот же тип компрессии аудио- и видеоданных, те же принципы формирования изображения), только имеющий более высокое разрешение и битрейт. То есть концепция по сравнению с классическим форматом видео не изменилась.

Открытым остается лишь один вопрос: как смотреть такое видео?

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

Варианты реализации следующие:

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

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

Необходимо обеспечить следующие компоненты:

  1. источник видео- и аудиосигналов;
  2. средства для склейки видеосигналов в панорамное изображение в реальном времени;
  3. кодер, способный осуществить компрессию сигнала без искажения картинки;
  4. медиасервер для раздачи потока на абонентские устройства;
  5. специальный плеер, поддерживающий работу с панорамным изображением.

Во всей цепочке качество конечного продукта обеспечивают в первую очередь камера и способы склейки нескольких картинок в единое изображение. Если взять камеру типа Orah 4i, тут все просто: подключили к интернету и передали по RTMP поток на медиасервер. Дополнительные финансовые вложения позволят добиться более высокого качества съемки. Для этого можно использовать практически любые устройства, однако есть масса подводных камней, которые не позволяют решить задачу «в лоб», просто установив камеры с широкоугольными объективами по окружности. Следует помнить о том, что они должны синхронно передавать кадры с матрицы программе для склейки (stitching), также необходимо настроить цветовую температуру, обеспечить равномерность установки по вертикали и горизонтали и так далее. Рабочая конструкция требует серьезной инженерной проработки. Не стоит забывать и про звук.

После того, как устройство съемки готово, синхронные кадры поступают на устройство склейки, которое представляет собой мощную рабочую станцию, оснащенную платами захвата изображения и звука.

Перед тем, как окончательно выбрать, на чем строить такую станцию, необходимо понять, куда пойдет генерируемый ею поток. Wowza Media официально объявила о поддержке стриминга 360, что позволяет выбрать Wowza Streaming Engine в качестве медиасервера, нужно лишь выяснить, откуда лучше всего отдать IP-поток. Официальной рекомендацией является решение Vahana VR от компании VideoStitch. Продукт позволяет собрать станцию с необходимым количеством видеовходов. Он предоставляет возможность склеить картинку, расположив сигналы камер на поверхности сферы, записать в файл, а также передать в виде RTMP live-потока на медиасервер. Рабочая станция комплектуется необходимым количеством плат DeckLink/AJA/Magewell, процессором Intel Corei7-5930K или более мощным, GPU NVIDIA Geforce 980 Ti. На выходе получаем RTMP, SDI/HDMI сигналы, а также вывод на шлемы виртуальной реальности Oculus Rift или HTC Vive.

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

  • Krpano: поддержка Flash и HTML5/WebGL, протоколы RTMP и HLS;
  • VRPlayer: плеер для рабочих станций с открытым исходным кодом (Open Source), с поддержкой широкого спектра форматов и геометрических проекций. Также есть версия для Android (но есть проблемы с воспроизведением 4К);
  • Sphereplay: поддерживает до 16 различных проекционных раскладок в форматах 2Dи 3D. Поддерживает воспроизведение сферического видео HD, 4K, 8K. Доступен для iOS и Android.

Также можно воспользоваться набором разработчика Panframe SDK для создания собственного решения под конкретную задачу. Пакет позволяет:

  • создавать собственные решения под iOS, tvOS, Android, HTML5, Flash, OSX и Windows;
  • обеспечить навигацию в 2D или 3D с поддержкой Oculus Rift и Microsoft Kinect;
  • поддерживать работу с Live и VOD контентом;
  • поддерживать протоколы RTMP, HLS, DASH;
  • работать с H.264 и H.265;
  • поддерживать разрешение вплоть до 8К как для настольных ПК, так и для мобильных устройств.

Не стоит забывать и про шлемы виртуальной реальности (например, Oculus Rfit или HTC Vive), которые позволяют отслеживать положение и наклон головы, скорость ее перемещения и вращения. Есть также и более простые решения от Samsung (Gear VR), представляющие собой очки, в которые закрепляется смартфон.

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

Благодаря тому, что абсолютно все компоненты имеют как широкий набор настроек, так и возможности разработки собственных решений и интерфейсов, можно построить более сложную структуру, где конечный пользователь получает не только окно плеера, в котором он управляет обзором, но и возможность добавить туда различные элементы инфографики, метаданные и т.п. Например, футбольный матч, который можно снабдить счетом, изменением аудиосопровождения в зависимости от направления взгляда, информацией об игроках и их положении на поле, обеспечить высокое качество (до 8К) изображения, что позволит в полной мере окунуться в игру, владея даже более полной картиной происходящего, чем болельщики на трибунах.

Если не брать в расчет методы получения дополнительных данных, то решение также не представляется сложным. Требуется лишь синхронно передать видео-, аудио- и метаданные.

Подводя итог, можно с уверенность говорить о том, что на сегодняшний день для погружения пользователя в виртуальную реальность есть практически все компоненты. И это не просто просмотр видео 3600х3600, а создание полноценной виртуальной среды, включающей в себя аудиосопровождение, наложение дополнительных данных (так называемая дополненная реальность), управление перемещением, зуммированием изображения и так далее. При этом качество получаемой картинки не ограничено практически ничем, кроме физических возможностей оборудования. Если же все это не нужно, то достаточно купить камеру с поддержкой стриминга 3600 (например, Orah 4i), установить медиасервер Wowza Streaming Engine для раздачи потока на абонентские устройства и опубликовать потоки на сайте. Можно применить готовый плеер (SpherePlay, Krpano или VRPlayer) или разработать свой продукт согласно задаче на базе Panframe SDK.