2016-05-22

Мы выпустили транскодер

Добрейшего дня!

Как я уже писал ранее, наша команда работает над программным медиа-сервером - Nimble Streamer. Это самое эффективное решение в своём классе. Мы постоянно совершенствуем наши продукты и вот мы сделали ещё один шаг - выпустили транскодер. Это платное дополнение для Nimble Streamer, обладающее широкими возможностями для декодирования, преобразования и кодирования потокового медиа-вещания.

На вход берутся H.264, MPEG2 видео с AAC, MP3, MP2, Speex аудио, выход идёт H.264/AAC или выдаются напрямую кодеки без обработки. Забираю на вход RTMP, RTSP и MPEGTS, на выход отдаются они же, плюс HLS и MPEG-DASH.

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

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

Все подробности можно изучить на сайте: https://ru.wmspanel.com/transcoder







2016-01-06

Итоги 2015 года для Nimble Streamer

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

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

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

Мы выпустили SDK мобильного вещания, доступного для лицензирования, и поддержали его выпуском приложений в Google.Play и AppStore.

Наш флагманский продукт, Nimble Streamer, был серьёзно переработан и мы можем с уверенностью говорить о том, что сейчас это - лучшее решение по доставке видео на международном рынке.

Полный текст итогов года с описанием самых значимых достижений можно прочитать в новой записи русскоязычного блога нашей компании.

С Новым Годом и Рождеством!

2015-07-30

github поднял 250M инвестиций

Добрейшего дня!

ТехКранч пишет:

GitHub, the software development collaboration and version control service based on the popular open source Git tool, today announced that it has raised a $250 million funding round led by Sequoia Capital. Andreessen Horowitz, Thrive Capital and Institutional Venture Partners also participated in this round.
Общий объём вложений составляет теперь 350М долларов. Издание Wall Streat Journal оценивает компанию в 2 миллиарда долларов.

Согласно Крису Ванстрату, СЕО и со-основателю компании, деньги будут вложены в первую очередь в усиление продаж, а также в инженерную команду. В целом же цель привлечения этого раунда - инвестировать в укрепление сообществ в разных страна мира. Порядка 70% пользователей находятся за пределами США, отсюда и стремление "выйти в народ" и поддержкать местные комьюнити.

Также в статье немного последней статистики по использованию сервиса.

P.S. Запостил статью на Хабр.

2015-05-03

git исполнилось 10 лет

Короткий пост.

Во-первых, исполнилось 10 лет с момента появления первой версии git. Ура.

Во-вторых, всвязи с этим вышло занятное интервью Торвальдса к 10-летию git: 10 Years of Git: An Interview with Git Creator Linus Torvalds

А ведь как будто вчера было.

2014-06-24

Статьи на Хабре и на Спарке

Возвращаясь к двум предыдущим статьям про WMSPanel и Nimble Streamer.

Не так давно решил написал краткий обзор того, зачем люди вообще начинают делать свои видеопроекты, чем хорош и чем плох YouTube, и когда стоит выбрать его, а когда - создать собственное решение.



Кроме того, для знакомых и не только решил открыть русскоязычный блог, посвящённый нашим продуктам, на площадке Spark.ru.

Итак, читаем статьи блога про видеотехнологии:




Чуть позже планирую продолжить графоманство на русском. Если у кого есть вопросы, которые нужно осветить - обращайтесь.

2013-10-22

Nimble Streamer - сервер для медиа-стриминга

И снова здравствуйте.

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

Итак, в начале 2013 года мы представили медиа-сервер Nimble Streamer. Это лёгковесный сервер, заточенный под потоковую передачу данных (стриминга). Что он умеет?


В этой презентации можно посмотреть обзор основных фич, а ниже - чуть подробностей.

MP4 to HLS VOD transmuxing и MP4 to MPEG-DASH transmuxing. Можно класть на сервер файлы MP4, заэнкоденные в H.264/AAC, и по мере обращения, на лету, делать re-packaging в HLS и MPEG-DASH. Это и называется транзмаксинг, т.е. перепаковка формата передачи данных при передаче их клиенту для воспроизведения. На формат энкодинга это влияет, поэтому при должной оптимизации (а она у нас присутствует в полной мере) операция это достаточно быстрая и не ресурсоёмкая. Что важно - передача в ведётся в режиме VOD.

Потоковую передачу в "живом режиме" - live streaming. Можно брать данные по RTMP и транзмаксить в HLS, DASH, Icecast. Можно также раздавать по RTMP - как на проигрывание, так и на пере-публикацию. Также в качестве источников может быть взяты MPEG-TS и Icecast.

Кроме этого есть функционал для ре-стриминга медиа-данных по HTTP-based протоколам. Нимбл умеет делать ре-стриминг для HLS, Smooth Streaming, HDS, MPEG-DASH и pseudo-streaming. Ставится несколько edge-серверов Нимбла поближе к клиентам-потребителям трафика и эти сервера настраиваются на origin - на всё тот же Nimble или на любой другой медиа-сервер.

Нимбл умеет эффективно кешировать данные как в памяти, так и на диске, поэтому ориджин будет работать с уменьшенной нагрузкой - её возьмут на себя эджи в исполнении Нимбла.

Кроме указанных протоколов Nimble умеет раздавать контент по протоколу progressive download (он же псевдо-стриминг) в качестве как origin, так и edge. Многие сайты в Рунете предпочитают раздавать именно через этот протокол.

В дополнение имеется возможность делать балансировку нагрузки между медиа-серверами. Это важно в нашем случае, т.к. расчёт делается на то, что медиа-стример будет ставить несколько небольших серверов поближе к потребителям контента. Отсюда необходимость балансировать нагрузку по местоположению или IP-адресам. Кроме гео, есть возможность разбрасывать соединения и по round robin.

Был реализован механизм защиты от ре-стриминга - hotlinking protection - он позволяет предотвращать кражу прямых ссылок. Также можно ограничивать работу потоков через гео-локацию или диапазоны IP.

Сервер в данный момент ставится на Ubuntu, Debian, CentOS и RedHat через обычную пакетную установку, а также на Windows и MacOS через нативные установщики.

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

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

Уверен, кому-то из моих читателей наша разработка пригодится.

P.S. Да, это снова разнузданный самопиар :)

WMSPanel - admin GUI Wowza Media Server

Добрейшего дня!

Пришла пора рассказать, куда же я пропал и почему за последние пару лет было так мало обновлений в блоге отставного сиэмщика.

Примерно 3 года назад мы с единомышленниками начали свой бизнес. Или bootstrap startup, как некоторые его модно называют. Начали мы с создания плагина для Windows Media Services, который помогал защитить медиа данные от ре-стриминга. Потом мы перешли к созданию панели управления для этого же медиа сервера. В итоге к концу 2011 года у нас был проект, способный собирать статистику и защищать медиа-данные для Windows Media.

Дальше мы решили переключиться на поддержку Wowza Media Server (ныне - Wowza Streaming Engine) - и не прогадали. Впоследиствии мы добавили поддержку Red5, Flussonic и nginx-rtmp-module.

На сегодняшний день нам удалось сделать универсальную панель администратора медиа-серверов, которая включает в себя:

Полный список возможностей можно посмотреть здесь.

Панель представляет собой веб-сайт, данные для которого отсылает специальный add-on. Через него же идёт управление сервером. Панель доступна по модели Software-as-a-Service, с помесячной или годичной оплатой, и с пробным периодом использования. Подходит всем - от новичков медиа-бизнеса до матёрых CDN-ов.

Основные "этапы славного пути" можно узнать из статьи про нас от корифея медиа-стриминга, Дэна Рэйбёрна, там описана наша история по январь 2013 года. Можете почитать наш блог или Твиттер, чтобы узнать, что делается сейчас и куда движемся.

Кому интересно, некоторые наши наработки - включая плагины для WMS и темплейт для Maven - выложены в открытый доступ на гитхабе.

Однако, это ещё не всё! В следующей статье читаем про наш новый сервер медиа-стриминга.

P.S. Да, это разнузданный самопиар :)

2013-08-26

Ещё о системе контроля версий от JetBrains

Не так давно запостил ссылку на видео, где представитель компании JetBrains рассказывал об их новой системе контроля версий, которую пилят в их потаённых исследовательских лабораториях.

И вот опять они. Набрёл (как водится, на Хабре) на подкаст Разбор полётов, где CTO JetBrains рассказывает в числе прочего и про новую VCS. Рассказ начинается примеро с 0:30.

Итак, что нового по сравнению с предыдущим инсайдом.

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

Более подробно рассказали про синхронизацию рабочих копий. Вкратце работа будет идти по следующему принципу:

  • Пользователь пишет код, сохраняет его.
  • Специальный сервис (демон? процесс?) трекает изменения и если изменения сделаны - синхронизирует их с центральным сервером.
  • Это же пользователь, сев за другое рабочее место, получает все измененённые файлы в том виде, что и на первом рабочем месте.
  • Если изменения нужно кому-то показать без забрасывания в ветку в виде отдельной версии - это можно легко сделать (понятно, детайле пока нет).
  • Если изменения нужны на ветке - они коммитятся, получается версия.
  • Версии можно будет также делать локально - с последующей синхронизацией с центральным сервером (пресловутый юзкейс "хочу коммитить код, летя в самолёте")

То есть с одной стороны система централизованная, а с другой - есть возможность офлайновой работы.

Ещё интересный момент - локально у пользователя будет подниматься локальный сервер контроля версий, который будет общаться и синкаться с другим таким же, но централизованным сервером. Дефолтный интерфейс для работы с серверами - через веб. Будет и интеграция с IDE через API, конечно же, да и ком. строка в наличии, однако самая полная функциональность будет доступна через браузер.

Не раз были сравнения с git, отдельно было сказано о том, что будет предусмотрена прозрачная синхронизация с его репами. Это нужно как для облегчения перехода с него на новую систему, так и полноценная работа в том случае, если разные части команды будут принципиально сидеть на разных тулах.

Было ещё раз сказано о том, что система - open source. Прозвучала здравая мысль о том, что в наше время писать с нуля закрытую VCS - это мягко говоря неправильно. Оно и понятно - если есть открытый git, кому нужен закрытый конкурент?

В целом, движение интересное и не лишённое смысла, очень хочется посмотреть, что получится.

P.S. На Google+ возникло обсуждение.

2013-08-21

JetBrains замышляет новую VCS

И снова здравствуйте.

Не смог пройти мимо очень занимательного видео.



Да, JetBrains решили сделай свою систему контроля версий, с преферансом и поэтессами. Судя по видео (преступно короткому!!!) система будет централизованной, с возможностью офлайновых коммитов. Очень напоминает Perforce - опять-таки, судя по рассказанному. Но, в отличие от, будет вроде как open source.

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

Во-первых, централизованные системы контроля версий не только имеют право на жизнь, но и в некоторых случах справляются с задачами лучше распределённых систем вроде git и Hg. В качестве иллюстрации: огромное число компаний используют, например, Perforce, и даже не думают с него слезать. Ярчайший пример - Гугл, которого работает крупнейшая в мире инсталяция Perforce.

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

Поэтому я лично очень хочу посмотреть, во что превратится это начинание.

Release engineering и вообще разработка в Badoo

Добрейшего!

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

Процесс разработки и выкатка релизов в Badoo. Автоматическое тестирование. Девелоперское окружение.

Инетервью с двумя инженерами, которые занимаются configuration management, release management и все, что с этим связано. Прям ностальгия накрыла - именно этим я и занимался немало времени, именно из этих занятий пошёл данный бложик.

В общем, интервью крайне познавательное, всё по делу, много интересного. Комментировать здесь смысла нет - в интервью всё рассказано с избытком. Ну, для тех, кто понимает, о чём речь, конечно.