Статьи в блоге Праймсофт

Главная / Блог / Статьи / Мобильность / Схема системы онлайн-трансляции видео с танков на Танковом Биатлоне 2014

Схема системы онлайн-трансляции видео с танков на Танковом Биатлоне 2014

Постановка задачи: 

  • реализовать возможность клиентам получать видео-изображение с камер танков и с рабочего места оператора (получать видеопоток с камер танков (4 камеры на каждом танке) и транслировать внешним клиентам);
  • видеопоток с камер также использовать в ПО мониторинга на АРМ оператора;
  • видео с рабочего стола АРМ оператора также транслировать внешним клиентам;
  • в любой момент иметь возможность отключить внешних клиентов от видео-трансляции без остановки функционирования ПО мониторинга (АРМ оператора).

Ограничения проекта:

  • на полигоне развернута закрытая сеть связи (средства Основа-Телеком), которая имела выход в интернет только через выделенный канал. В эту сеть включены камеры с танков и другое оборудование и ПО, задействованное в показе;
  • пропускная способность сети связи ограниченна, т.к. приоритет по трафику отдается каналам передачи HD-видео с камер танков для телевизионной видео-трансляции.
  • доступ внешних интернет-клиентов из интернет к серверам в сети связи полигона отсутствует.

Реализованная схема:

Использованы следующие программные средства:

  • ПО мониторинга. ПО для оператора, в котором отображаются видео-потоки с камер танков, отображаются данные о положение и состоянии танков на карте;
  • Wowza-сервер. Выполняет трансляцию видео-потоков из разных источников внешним клиентам;
  • Apache, JWPlayer - медиа-плеер, позволяющий отобразить потоковое видео в браузере;
  • VLC - сервер, выполняющий захват изображения с рабочего стола оператора.

Детали реализации

В схеме можно выделить два основных компонента: ПО Мониторинга и сервер потокового вещания Wowza.

ПО мониторинга ориентированного на оператора, который наблюдает за состоянием объектов на карте, получает видео и переключается между видео-камерами, наблюдает состояние объектов и др. Сервер Wowza добавлен в систему для подключения к этой схеме внешних пользователей. Wowza позволяет создать несколько видео-каналов и подключить к ним пользователей. При этом Wowza управляет качеством изображения, выполняет конвертацию форматов, контролирует качество канала связи, ведет статистику работы, сохраняет online-потоки локально. Кроме того, Wowza - это центральная точка для всех внешних клиентов.

Эти два элемента могут функционировать раздельно, но и объединяются при необходимости. В частности, потребовалось транслировать видео с рабочего стола оператора, чтобы пользователи могли наблюдать действия оператора. Для этого реализован еще один канал видеоданных - "VLC-сервер - Wowza", с помощью которого выполняется screecast рабочего стола, кодирование и передача на потоковый сервер. Далее он аналогичным образом доступен клиентам.

В дополнение к ПО Мониторинга Оператора разработано мобильное приложение, которое позволяет получать данные из ПО, видео-поток с камер танков и отображать в том числе на карте. Это позволяет пользователям наглядно следить за состоянием и местоположением объектов на трассе.

Все видео-камеры на танках генерируют RTMP-видео поток и имеют возможность настройки качества передаваемого изображения. Это позволяет не передавать Full-HD изображение, когда оно не требуется. Эта функция используется в ПО Мониторинга, что снижает нагрузку на систему связи.

Одновременно RTMP-поток видео с танков поступает на Wowza, где организовано несколько каналов: по одному на каждую камеру. Для удобства просмотра видео с Wowza установили Web-сервер с одной страницей, на которой размещен медиаплеер JWPlayer, позволяющий отображать видео на любом устройстве (стационарном или мобильном). Клиенты могут зайти на сайт с плеером, выбрать канал и наблюдать видео с любой камеры.

Данная схема работоспособна в рамках одной сети, например интернет или ЛВС, где внешние клиенты имеют доступ к ПО мониторинга и к Wowza-серверу. Однако в реальной ситуации интернет-пользователи (например, со своими мобильными телефонами) не имели доступа к сети с серверами нашей системы. Для решения этой проблемы решено было подключать внешних клиентов на внешний Wowza-сервер, доступный из интернет, а внешний по выделенному ограниченному каналу подключался к серверу на полигоне.