Pull to refresh
2
0
Максим Лапшин @erlyvideo

Пользователь

Send message

Ой, у меня задержка

Reading time8 min
Views25K
К нам часто приходят с такой проблемой, но надо сразу уточнить: обычно это мужчины, а мы занимаемся доставкой видео.

О чём же речь? Речь о сокращении задержки между тем, когда что-то происходит перед камерой и тем, когда это дойдет до зрителя. Понятно, что трансляция лекции по квантовой физике будет доходить дольше, чем комеди-клаб, но мы всё же занимаемся техническими деталями.

Прежде чем переходить к обсуждению задержек (оно же latency, delay), надо ответить на очень важный вопрос: а зачем вообще их сокращать. Сокращать задержку хочется почти всегда, но требуется не всегда.

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

Что творится с HEVC (h265)

Reading time4 min
Views73K
В своё время разработка кодека H264 стала настоящим прорывом, потому что получилось посадить за один стол людей, занимающихся телевидением, IP камерами, конференц-связью и родить стандарт, которого в целом хватило всем.

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

Так вот H264 — это сочетание хорошего кодека, хороших энкодеров и массы приличных декодеров. Но что же происходит с H265?
Читать дальше →

«Ржавая» IP-камера: прошивка на Rust

Reading time4 min
Views24K
До появления ботнета Mirai только особо интересующиеся знали о том, что находится внутри обычных IP камер. В большинстве случаев там стоит обычный линукс, причем частенько с дефолтным рутовым паролем, а то и вообще без него: у нас в офисе стоит такая камера, с прошивкой от декабря 2016 года и беспарольным рутовым телнетом.

Но что же дальше, какой софт запущен на этом линуксе? Есть несколько классных статей datacompboy про поиск бага которого нет, есть ещё разрозненная информация, но в целом ситуация такая: на IP-камере стоит специально пропатченное ядро, которое дает доступ программе через специальную библиотеку к железу, выдающему сжатые видеокадры.

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

Мы решили исправить эту ситуацию своей прошивкой, причем сделав ставку на Rust.
Читать дальше →

Сервис сбора статистики с Flussonic

Reading time2 min
Views3.5K
Всем привет, хочу рассказать про наш первый сервис, который мы собираемся оказывать нашим клиентам: сбор статистики и отчеты.

Много лет мы только продавали софт, теперь мы приготовили к запуску сервис по сбору статистики и предоставлению отчетов. У нас берут Flussonic, запускают его на своих серверах, абоненты смотрят видео с этих инстансов Flussonic и создаются записи о сессиях просмотра.

Эти сессии как раз сливаются в наш сервис и мы покажем отчеты, сделанные по ним, в личном кабинете.
Читать дальше →

Как работать с событиями в Flussonic

Reading time5 min
Views5K

Работа с событиями в Flussonic для мониторинга


Пользователи часто обращаются с вопросом: как сделать так, что бы Flussonic прислал письмо при падении потока.

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

Что такое Flussonic Watcher

Reading time5 min
Views9.8K
Если у вас в голове бурлят идеи о том, как бы сделать историю, в которой будет много пользователей, много IP камер и куча профита с этого, то не проходите мимо — мы расскажем о том, как мы помогаем запускать сервисы массового видеонаблюдения на нашем Flussonic Watcher.

Flussonic Watcher это:


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

В состав Flussonic Watcher входит:

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

Зачем нужен Watcher?

Читать дальше →

Как уберечь IP камеру от ботнета Mirai с Flussonic Agent

Reading time10 min
Views16K
Недавняя серия рекордных DDoS атак под терабит здорово взбудоражила тех, кто вроде к такому уже привык. Вполне возможно, что ситуация повторится в ближайшее время, причем с существенно большей силой, ведь базовые причины возникновения такого мощного ботнета как Mirai не устранены.

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

Я хочу рассказать о некоторых аспектах этой проблемы и какие могут быть шаги, чтобы снизить остроту этой проблемы.

Текущее положение дел


Итак, сейчас в мире продаются миллионы IP камер. Первая же ссылка из интернета заявляет про 200 миллионов камер безопасности, и эта цифра выглядит вполне разумно.

Не все CCTV камеры — IP, до сих пор продается огромное количество аналоговых камер. Аналоговые камеры понятны, в своём роде удобны, предсказуемы: ведь в них нет никакого глючащего софта, всё аппаратное. Но даже несмотря на последний всплеск AHD и HDCVI, IP камеры в силу лучшего качества картинки и большей гибкости замещают аналог (прекрасный повод аргументированно обсудить столь интересный вопрос в комментариях).
Читать дальше →

Обзор возможностей видеостримера Flussonic

Reading time8 min
Views29K
За несколько лет программирования мы добавили большое количество различных возможностей в Flussonic, так что хочется немного рассказать о том, как Flussonic устроен и что он может.

Для начала напомню: Flussonic — это state of art видеостриминговая серверная программа, которая может брать видео из различных источников, записывать его по необходимости на диск и раздавать клиентам по различным протоколам. Может работать на Intel, ARM, Tilera и т.п. Отличительная особенность — особая легкость конфигурации, не требующая ни единого мегабайта XML для настройки и запуска.

Во внутренней структуре и функциональности можно выделить две больших и важных части: работа с видео потоками и работа с видеофайлами (VOD).
Читать дальше →

Стоп, снято. Записано и передано

Reading time5 min
Views14K
Кадры решают всё. В 2015 году эта фраза приобретает совсем иное прочтение: всё решают видеокадры, а точнее, видео, которое завоевало заслуженную популярность во всех отраслях: от развлекательных каналов до серьёзных медицинских и космических проектов. Ценность видеоконтента очевидна: он передаёт точное состояние систем и событий, просто фиксируется, легко воспринимается человеком. Однако всё более совершенные устройства записи и создания видео порождают всё больше неординарных задач по передаче и хранению контента, с которыми под силу справиться только серьёзному и надёжному программному обеспечению, разработанному на основе передового опыта.


Читать дальше →

Периодическая посылка сообщений

Reading time2 min
Views8.7K
Пост про эрланг, но применим и ко всем другим языкам.

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

В erlang есть три интересующих нас функции: timer:send_interval, timer:send_after и erlang:send_after.

Сначала объясню, почему нельзя пользоваться send_interval.

Читать дальше →

Comet сервер на эрланге

Reading time5 min
Views8.6K
Статья для людей, только начинающих знакомиться с эрлангом: как написать простой comet сервер.

Готовый код здесь: github.com/maxlapshin/comet

Описание



Комет-сервер будет написан с использованием cowboy, tinymq, и куска жабаскрипта.

Код выложен на гитхабе с тегами. Основные этапы помечены тегами, можно откатиться, чтобы посмотреть, что именно было сделано в тот или иной момент.

Сама статья пишется параллельно с кодом, что заметно из истории в гите.

Логика такая: по http постим сообщение на сервер, оно попадает в очередь сообщений, откуда его выгребает клиент через long-poll запрос.

Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity