В 2022 году существенно вырос спрос на отечественный софт, в первую очередь заменяющий зарубежные решения. Вопрос замены ПО до сих пор остро стоит во многих компаниях и государственных структурах, особенно после ухода из России зарубежных вендоров и организаций, предоставляющих удобные сервисы для коммуникации. В сегодняшнем интервью поговорим с Сергеем Выборновым @serg52 — одним из основателей системы видеоконференций Video Union и одним из совладельцев этого проекта. Video Union стал одним из вариантов на замену популярных в России сервисов Zoom и Microsoft Teams, постепенно прекращающих бизнес в РФ. Сергей расскажет историю сервиса, интересные и неочевидные моменты развития проекта и как на Video Union повлияла ситуация в мире.

Как начиналась работа над проектом?

В конце 2013 года программными продуктами видеосвязи было не удивить. Рынок переполняли зарубежные решения, но у нас всё равно было желание создать продукт и вывести его на рынок. После совещания приступили к написанию софта. Выбор языка пал на С++, что наложило фактор низкой скорости. Работа команды давала успех, в середине 2014 года выпустили предварительный релиз 0.3v. Если в цифрах, то клиентское приложение было готово на 40%, а сервер — на 25%. К концу 2014 года выпустили релиз 0.8v, способный совершать видеозвонки.

Когда и почему поняли, что делаете то что надо, что вы на верном пути?

Мы поняли, что на верном пути, только когда продукт начали покупать. Каждая команда идёт по своему пути развития. Часто на рынок выходят предложения на условно готовых решениях Electron + WebRTC. Их можно сделать в очень короткие сроки. Таких систем только в России больше полусотни, но наша команда пошла сложной дорогой и делает продукт практически с нуля.

Какие проблемные этапы в работе можете вспомнить?

Работа на энтузиазме — сложная затея. 2015 год начался уходом одного разработчика из трёх и релизом 1.0v. С 2016 по 2019 года снизились темпы работы, разработка велась в основном над устранением ошибок. 

2020 год шокировал своими изоляциями из-за пандемии коронавируса. Команда укомплектовалась четырьмя разработчиками, оперативно выпустили новый релиз 1.4v, закупили рекламы и стали ждать вал клиентов. Некоторый результат 2020 год показал, но, к сожалению, мы не добились резкого взлёта. Финансовый результат за год ушёл на зарплату и рекламу, а команда в конце года ушла в другие проекты.

2021 год стал годом сложных решений. В начале года нами было принято решение о:

  • создании бренда Video Union;

  • старте разработки собственного фреймворка;

  • старте разработки с нуля клиентских приложений на собственном фреймворке;

  • пересмотре цен.

Фактически мы перезапустили проект, два года плодотворной работы дают свой результат.

Можете рассказать об откровенных ошибках на разных этапах развития проекта?

Все ошибки за такой промежуток времени вспомнить сложно. Но есть одна забавная история. Ну как, в прошлом году было не смешно, но сейчас уже можно вспомнить с улыбкой. На старте проекта к нашему облаку подключилось >1000 пользователей. При очередном обновлении сервера клиентские приложения обновлялись и не устанавливали обновления. В итоге одним днём стерли всю наработанную базу.

Какие неочевидные моменты можете вспомнить?

Неочевидный момент замечен с корпоративными клиентами. У предприятий стоит единый шлюз. Как правило, он управляемый с массой ограничений, часто встречается прокси, собранное на непонятно чём и администрируемое непонятно кем. Ответ клиентов такой: «А мы не знаем, это настроили лет пять назад, так и работает». С нашей стороны было принято решение применить порт 5060 (SIP). Как правило, 100% шлюзов пускает его напрямую, в том числе и прокси.

Вопрос для хабраэкспертов. Расскажите о вашем продукте с технической стороны (на чём пишете, структура и прочие технические моменты). Настолько подробно, насколько можете.

Система реализована на языке C++ с использованием открытых библиотек, распространяемых под лицензиями BSD / Boost / Intel. Все библиотеки, кроме Intel Integrated Performance Primitives, доступны в виде исходного кода для исследования.

Сетевой обмен осуществляется по следующей схеме. 

Каждый клиент устанавливает TCP-подключение к серверу, через которое обменивается управляющей информацией с сервером. Медиа-трафик по нему не передаётся. В нашем стоковом решении полезной нагрузкой этого канала связи является http(s) websocket сессия, в рамках которой передаются команды в формате json. Передача медиа-трафика (видео и звук) производится по UDP, полезной нагрузкой которого являются RTP/RTCP пакеты с зашифрованными симметричным шифром AES 256 ECB данными. Сервер не расшифровывает медиатрафик, а просто пересылает его в неизменном виде.

Приложения собираются статической линковкой со всеми библиотеками под Windows x86 и x64, под Linux частично динамической линковкой. Исполняемые файлы подписываются цифровой подписью издателя для защиты от модификации.

Для реализации пользовательского интерфейса клиентских приложений используется библиотека WUI. Это собственная разработка, использующая WinAPI, xcb, quartz.

Когда вышли в ноль или начали получать прибыль?

В 2015 году появился первый финансовый результат. Сервер к тому времени работал на windows и linux, клиентские приложения — аналогично. С 2016 по 2019 года выпущен промежуточный релиз 1.1v. Главный архитектор и разработчик в одном лице переключился на проект онлайн-касс. На конец 2019 года число коммерческих пользователей достигло 400 компаний, число бесплатных установок превысило 5 000.

Кто были первые заказчики? Как вы убеждали их попробовать использовать свою разработку, как получали фидбэк, за счёт чего потом наращивалась база юзеров?

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

Какие именно оговорки по функционалу?

Ну, например, клиент под mac в разработке с лета этого года и будет готов только к февралю следующего. Также у нас нет мобильных клиентов, клиента в браузере webRTC и ещё многих полезных функций, которые мы делаем постепенно.

Я указал ранее, что можно взять зарубежные модули и слепить «российский» продукт. Electron + webRTC — это тот же Sber JAZZ, у «Яндекс Телемост», у которого внутри Jitsi, «Контур Talk», все эти решения, использующие webRTC, и так далее. Суть в том, что webRTC — это разработка корпорации Google. Хорошо работает на хромиуме от той же корпорации, то есть WebRTC — это встроенный в браузер клиент. Мы же пишем свой клиент, и это накладывает определённые задержки с проработкой совместимости и прочих моментов, к которым привыкли пользователи.

Какую работу проделали за 2022 год и с какими результатами вышли?

За год клиенты и сервер доработаны, сначала выпущен релиз 1.5, затем 1.6. Поймали первый хейт. Нам написали, «что наше приложение самое лучшее для чиновников, так как чиновник должен всегда страдать». 

В мае 2022 полностью закончен переход на собственный фреймворк и выпущен релиз 2.0. В этом году с нами случилась история на тендере. Представьте, что вы автосалон, торгующий автомобилями завода ВАЗ. К вам обратился заказчик с вопросом приобретения автомобиля Lada Granta, цену возьмём условно — 500 тысяч рублей, это не сильно принципиально. Но есть момент — заказчик государственная компания, и нужно проводить торги. Заказчик готовит документацию, объявляет торги. Но происходит незадача, на торги выходит автосалон KIA и говорит, что за эти же деньги они готовы поставить автомобиль KIA RIO стоимостью 1,5 млн рублей. У заказчика радость, что они купили новенькую Kia Rio по цене Lada Granta. Мы были немного в удивлены от такой щедрости, когда аффилированная с известным брендом компания вышла на тендер с таким падением цены. Нас не огорчила эта ситуация, а наоборот, только взбодрила. Успели сходить с жалобой в ФАС, но даже при объективных нарушениях с стороны победителя мы не смогли выиграть. Это, конечно, шутка, но размер потерь завода при отмене тендера несоизмерим :) 

Сухой остаток на 03 декабря 2022 года за всё время работы.

  • В git сделано 5 000 коммитов.

  • Потрачено больше 25 000 часов разработки.

  • Производительный клиент весом в 10 мб.

  • Сервер 50 мб (с учётом клиентов) потребляющий минимум ресурсов.

  • Упор разработки на оптимизацию видео, платформы клиентов и работу с интерфейсом.

Работаем дальше.

Как на вас повлияла СВО и последовавшие после её начала события?

И хорошо, и плохо. Вроде в душе все радуются, что Zoom, Teams и «Google Конференции» могут скоро прикрыть. А с другой стороны, мы понимаем, что в РФ нет решений с подобной инфраструктурой. Локально да, задачи решаются, глобально — нет.

Если говорить о заказах — да, есть кратное увеличение. С мая наблюдаем резкий рост интереса к нашему продукту. Причём отрабатывали крупные кейсы на 10 и 30 тысяч пользователей и больше. Могу отметить, что сфера образования сильно заинтересована в качественном продукте. В целом все приходят с желанием, чтобы было точь-в-точь как у того или иного бренда. Крайне сложно объяснять, что один в один не получится мгновенно. Многие просто не понимают, что создание продукта включает работу целой команды и не один год, и продукт пишется с нуля. А к продукту такого типа, если говорить, к примеру, о saas-решении, нужна ещё инфраструктура из геораспределённых серверов и широких каналов доступа, желательно объединённых между собой, об этом, как правило, простому пользователю неизвестно. Мы оценивали, сколько нужно на хорошую инфраструктуру, как у крупных зарубежных конкурентов. По нашим подсчетам — минимум 800 млн рублей для покрытия потребности в России с учётом обслуживания на 5 лет.

Судя по примеру с автомобилями, довольно сложно работать с госзаказчиками. Можете подробнее рассказать об этом?

Сектор госзакупок сам по себе сложный и непредсказуемый, в закупочной документации может быть всё что угодно. Тут в двух словах не расскажешь. В общем, зачастую намного больше проблем, часто проще отказаться.

Сколько сейчас человек работает в команде? Какие перспективы вы для себя видите?

Проектом занимается шесть человек. Команда работает в нескольких проектах, т.е все участники независимы. Все сотрудники из России, работают в удалённом формате. Если вдруг кто-то решит уехать за границу и работать из-за рубежа, это никак не помешает развитию проекта. С учётом примера про автомобиль, можно сказать, что мы двигаемся в правильном направлении.

Рассматриваете зарубежные рынки?

Да, рынок России не такой большой, как кажется. Клиентов много, глобально в сотни раз больше, чем в России. Работаем в направлении локализации сайта, это не так быстро. Рассматриваем любые рынки, где к РФ относятся нейтрально или положительно. Бизнес и санкции — это немного разные вещи.

***

Подробнее о проекте: сайт, Telegram-канал и группа во «ВКонтакте».

Также можно послушать подкаст Дмитрия Беговатова — стартап-обозревателя, на канале которого опубликован выпуск с Сергеем Выборновым.

Комментарии (5)


  1. vassabi
    07.12.2022 13:17
    +2

    занимался в 2016-2018 видео плеерами. сделать кроссплатформенное проигрывание видео сигнала - это было нетривиально :) Надеюсь сейчас с этим легче.

    удачи вам с маком!


  1. LuggerFormas
    07.12.2022 13:27

    Можно поподробней, для чего вы там используете сигнальный (!) 5060? Протокол полностью свой, с SIP несовместим? зачем два порта на прием видео? Json команды вместо SIP+SDP - эт сильно, большая спецификация?

    Пойду поставлю фри(free...)свитч


    1. udattsk
      07.12.2022 16:19
      +3

      Сигнальный TCP порт вообще по умолчанию у нас 8778, а 5060 сделали в облаке чтобы некоторые корпоративные клиенты сидящие за прозрачными проксями могли подключаться напрямую. Сигнальный канал - WebSocket на HTTP(s) сервере.
      Протокол полностью свой, с SIP несовместим. Сейчас почти у любого современного мессенджера свой протокол, так сильно удобнее получается...
      JSON вместо SIP+SDP прекрасно себя зарекомендовали, кроме того это хороший задел для реализации веб приложения.

      На прием видео/звука вообще может использоваться один UDP порт или если UDP по каким-то причинам не доступно один же TCP порт как фейловер.

      FreeSwitch ???? тут каждому свое ????


  1. dyadyaSerezha
    07.12.2022 21:22

    Где-то в 97-ом году участвовал в проекте корпортивного видео в фирме Corel. Тогда каждому дали по отдельному "видео-компу", что-то вроде современных неттопов, и по камере - тестировали почти на всей фирме. Предполагалось, что камера будет включена постоянно и все сотрудники в большом многоэтажном офисе будут видеть всех - так это предполагалось и рекламировать клиентам. Как более приватный вариант, был режим автоматического фото каждую минуту (игтервал выбирался) и просмотр последних фото любого сотрудника.

    Само собой, продукт не взлетел, как и многие другие соаершенно сырые и безумные проекты того времени в Corel. Так и пошел ко дну один из лучших графических пакетов программ. Жаль)


  1. angry_paimon
    07.12.2022 23:31
    +1

    У вас даже не автоваз, у вас визуально самокат. Допилите интерфейс и функционал, того гляди и заказчики подтянутся.