Pull to refresh
39
0
Максим Клюшков @m_klyushkov

Tech support

Send message

Flussonic Agent — прошивка для камер

Reading time6 min
Views10K
Организация облачного видеонаблюдения — это множество технических нюансов, которые требуется решать сразу же: видимость камер из-за NAT, активация и идентификация камер, шифрование и автоматический провижининг. Камера при подключении должна автоматически стать частью IT-инфраструктуры оператора. Плюс должна обеспечиваться связь с абонентом. Flussonic Agent решает эти проблемы.

image
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments23

Ой, у меня задержка. Часть 2

Reading time4 min
Views9K
В предыдущей статье мы говорили о сокращении задержки в трансляции видео. С отправкой разобрались, теперь поговорим о доставке.


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments19

Flussonic Watcher для интернет-провайдера

Reading time5 min
Views7.7K
Перенасыщенный конкурентный рынок телекома, дешевеющая связь и услуги, увеличивающиеся требования к сервису и обременение государства к инфраструктуре операторов приводят к тому, что падающая прибыль операторов не позволяет им расти как прежде. А кому-то совсем нездоровится. В борьбе за лояльность пользователей и увеличение среднего чека у операторов есть один понятный путь — предлагать своим клиентам дополнительные услуги.

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


Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments18

Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений

Reading time8 min
Views76K


В статье решается задача управления описанием сборки для большого количества однотипных приложений. Чтобы в проекте заработал GitLab CI, нужно в репозиторий добавить файл .gitlab-ci.yml. Но что, если в сотне репозиториев это файл с одинаковым содержимым? Даже если разложить его по репозиториям один раз, то как его потом изменять? А что, если одного .gitlab-ci.yml мало для сборки — нужны Dockerfile или Dappfile, разные скрипты и структура YAML-файлов для Helm? Как обновлять их?

С чего начать решение задачи по сборке сотни однотипных приложений? Конечно же, посмотреть, можно ли GitLab CI указать использовать .gitlab-ci.yml из другого репозитория или компоновать .gitlab-ci.yml из файлов в других репозиториях…
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments7

Курс молодого бойца PostgreSQL

Reading time13 min
Views541K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments59

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

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

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

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

Так, например, прямой эфир с острополитическим ток-шоу в принципе стоит минуты на 3 придержать от прямого эфира, что бы можно было оперативно отреагировать на резкое развитие дискуссии, а вот вебинар или удаленное управление беспилотником требует минимальной задержки чтобы люди могли спокойно перебивать друг друга, а груз падал ровно в цель.
Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments33

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

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

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

Так вот H264 — это сочетание хорошего кодека, хороших энкодеров и массы приличных декодеров. Но что же происходит с H265?
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments57

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

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

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

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

Мы решили исправить эту ситуацию своей прошивкой, причем сделав ставку на Rust.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments45

Let’s Encrypt: раздаем видео по HTTPS в один клик

Reading time3 min
Views6.6K
image

Что такое Let's Encrypt знает, наверное, каждый читатель Хабрахабра, ведь опубликовано уже более 100 статей на эту тему. Большая часть из них, это инструкции по установке и настройке: какой пакет установить, какие строчки конфига поправить, какой скрипт разместить в crontab, как завести это на очередном веб-сервере и автоматизировать для docker и прочих модных технологий.

В нашем продукте — Flussonic, мы сделали, пожалуй, самый простой способ настройки Let's Encrypt, не требующий правки конфигов, просто нажатием кнопки «Сделай мне HTTPS».
Читать дальше →
Total votes 15: ↑4 and ↓11-7
Comments6

Хакинтош: разворачиваем macOS Sierra на Intel-PC подробно и понятно

Reading time13 min
Views1.1M
ПРОЧТИ МЕНЯ ПОЖАЛУСТО

Если вы НЕ МОЖЕТЕ распаковать файлы на флешку, пожалуйста, отойдите от кливиатуры и срочно прочитайте книгу «Компьютер для чайников: подробное пособие как пользоваться ПК»!!!



1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.


Данный мануал/гайд/etc написан для тех, кому лень собирать по кускам ту или иную информацию об установке «мака» на PC, все понятно и по полочкам.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments146

Как работают ИТ-специалисты. Максим Лапшин, основатель компании Flussonic

Reading time5 min
Views14K
imageМы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом.

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

Сегодня наш гость — Максим Лапшин, основатель компании Flussonic. У него достаточно категоричный взгляд на то, каким должен быть бизнесмен в ИТ. Но еще интереснее его отношение к словосочетанию «хороший инженер-программист».
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments26

Какой бывает HTML5-стриминг (и почему mp4-стриминга не существует)

Reading time6 min
Views54K
image

Нередко клиенты спрашивают, умеет ли наш сервер «mp4-стриминг в HTML5». В 99% случаев спрашивающий не понимает о чём говорит. В этом сложно винить клиентов: из-за путаницы с терминами, технической сложности и большого разнообразия вариантов стриминга запутаться очень легко.

В этой статье мы расскажем, какой бывает HTML5-стриминг, какие варианты хорошие, и почему, чёрт побери, нельзя говорить «mp4-стриминг».
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments54

Что такое Flussonic Watcher

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

Flussonic Watcher это:


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

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

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

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

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments4

Строим полноценный IPTV/OTT сервис: Stalker Middleware

Reading time8 min
Views146K
В этой статье я расскажу как установить бесплатную IPTV/OTT Middleware с открытым исходным кодом от компании Инфомир, зачем она нужна и какие возможности предоставляет пользователям и администраторам.

Статья будет полезна небольшим операторам и даже пользователям. Можно «поднять» у себя дома Stalker и использовать его для просмотра* бесплатных IPTV и интернет каналов на приставке. Самому организовать EPG и запись телеканалов.

*Stalker Middleware не содержит никаких ссылок на сервисы или телеканалы,
не открывает доступ к какому-либо контенту, а лишь предоставляет удобный
интерфейс для администраторов сервиса и конечных пользователей.


image
Total votes 18: ↑18 and ↓0+18
Comments29

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

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

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

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

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


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

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

Как стать профессиональным веб-разработчиком: практическое руководство

Reading time12 min
Views661K

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

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

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →
Total votes 49: ↑38 and ↓11+27
Comments129

Пулы потоков: ускоряем NGINX в 9 и более раз

Reading time15 min
Views88K
Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей

У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.

Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments58

Как перезагрузить сервер?

Reading time6 min
Views133K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →
Total votes 93: ↑86 and ↓7+79
Comments82

Свой облачный хостинг за 5 минут. Часть 2: Service Discovery

Reading time7 min
Views44K
Cloud hosting

Привет Хабр! В предыдущей статье я рассказал как построить свой облачный хостинг за 5 минут, используя Ansible, Docker и Docker Swarm. В этой части я расскажу о том, как сервисы, запущенные в облаке, находят друг друга, как происходит балансировка нагрузки между ними и обеспечивается их отказоустойчивость.

Это вводная статья, здесь мы сосредоточимся на обзоре инструментов, которые будут решать проблему «обнаружения сервисов» в нашем облаке. В следующей части мы приступим к практике, поэтому я решил дать вам время поближе ознакомиться с ними.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments1

Synergy — программный IP-KVM, который смог

Reading time4 min
Views31K

Вступление


В первую очередь надо сказать, что этот продукт уже фигурировал на ресурсах ТМ в этой статье от 2008 года. Однако по прошествии примерно 7 лет картинки потерялись и материал кажется несколько устаревшим.

Этой же публикацией я постараюсь обновить краткий мануал, раскрыть некоторые моменты, оставшиеся «за кадром», да и просто популяризовать отличное решение, которое незаслуженно страдает от недостатка внимания.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments19

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity