Разработка ПО для участников сообщества


9 Января 2019

У нас в сообществе есть замечательный программист - Михаил Гаранин. Он известен стримерам как создатель WindBroadcaster и JustBroadcaster - небольших удобных программ для стриминга. Так же Михаил разработал два плагина для работы с источниками NDI - RTMP Mini Server и NTRStreamer. Эти плагины могут преобразовывать NDI в RTMP и обратно.

Участники уютного чятика AVStream в телеграмме периодически подкидывают идеи для программ по теме видео-стриминга. Обычно с пометкой “вот это вот точно нужно всем”. Идей много, они интересные, и вызваны реальными потребностями стримеров. Но увы - на реализацию всех идей нет ресурсов, поэтому мы выделили наиболее часто встречающиеся и предлагаем поучаствовать вам в их реализации по принципу краудфандинга.

Поскольку проектов на реализацию несколько, то будет два этапа:

  1. Выбор проекта. Из перечисленных проектов мы выбираем один для реализации первым. Собираем мнение и фидбек в течении недели. 

  2. Сбор денег на старт выбранного проекта. Собираем деньги в течении двух недель.

Кампания делается исключительно среди участников чата AVStream. Будет здорово, если наше сообщество сможет что-то выкатить на мировую арену.

Каждый проект имеет “Бюджет старта” - это сумма которая нужна для старта проекта. Также у проекта есть время на разработку первой версии - через сколько можно будет получить работающий прототип.

Если денег будет собрано меньше стартового бюджета, проект не стартует и деньги возвращаются. Если проект всё же стартует, то деньги не возвращаются.


Проект №1 - Автотрекинг для PTZ камер


Бюджет старта: 100 тыс. руб.
Время на разработку первой версии: 2 месяца.

Программа анализирует видео-поток по NDI или RTSP и посылает команды движения на PTZ-камеру. Изначально только команды движения, в последующих версиях - зуммирование (если объект приблизился/удалился). Управление через ethernet (VISCA-совместимые камеры).


Проект №2 - Виртуальная NDI-PTZ с автотрекингом


Бюджет старта: 100 тыс. руб.
Время на первую версию: 2 месяца.

Программа берёт поток высокого разрешения по NDI, SDI, HDMI и генерит один или несколько NDI-потоков меньшего разрешения из участков основного потока.

Таким образом поставив одну 4K камеру можно имитировать мультикамерный стрим (для live-стриминга обычно достаточно HD или FullHD).


Возможности:

  • 4 виртуальные камеры (outputs);

  • каждая виртуальная камера будет поддерживать базовые ptz-команды (VISCA по Ethernet)

Проект №3 - Бондинг система


Бюджет старта: 200 тыс. руб.
Время на разработку первой версии: 2 месяца.


На компе на локации стоит программа ClientApp которая принимает видео-сигнал (NDI, SDI, HDMI etc), сжимает и разбивает его на пакеты и посылает пакеты по всем имеющемся каналам (например через 5 модемов и один wifi). В студии стоит программа ServerApp которая принимает пакеты, собирает и выдаёт на выходе NDI.

ClientApp и ServerApp - обычные Win-приложения. Для работы ServerApp нужен белый IP.

ClientApp будет сжимать сигнал (на выбор будут доступны h264 и h265, звук AAC), будет поддержка HW-кодирования.

ServerApp будет соответственно декодировать.

Модемы и кабели не входят в поставку. Только софт.

Сравнение с LiveU и другими bonding-железками

Сильные стороны: они компактны, автономны (имеют батарейки), есть адаптивный битрейт.

Слабые: высокая стоимость увеличивающаяся от кол-во симок, сигнал идёт через промежуточные сервера (а выделенный сервер стоит относительно дорого). Нет простой возможности принять сигнал с микс-софта (vMix, OBS).

Предлагаемое решение конечно более габаритное, но зато нет жёсткого лимита на кол-во модемов, можно использовать модемы с батарейками. Может принимать сигнал по NDI. Также сигнал сразу летит в студию.

Speedify и другие сервисы на основе VPN

Speedify - сервис общего назначения, построенный на базе VPN, и каких-то специфичных для видео-стриминга техник, например изменения битрейта, не предполагает. Также в простой комплектации трафик идёт через их сервера, а выделенный сервер стоит относительно дорого.

Технические риски: большая задержка, но думаю можно будет удержаться в пределах 30 сек; возможно будут сложности с адаптивным битрейтом (но решаемо).


ГОЛОСОВАНИЕ ЗА ПРОЕКТ: https://goo.gl/2gqtFL