Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Веб-сервис для автогида

Вчера я доделал "астровидеогид-2" — сервис, захватывающий видеосигнал при помощи ffmpeg и выдающий кадры по запросу в сокет (или в ответ на обычные POST/GET-запросы). В дальнейшем туда же можно будет добавить модуль обработки отснятых кадров.
Доработка заключалась в том, что периодически ffmpeg отваливался на assert'е:
Assertion atomic_int_get_gcc(&s->buffers_queued) >= 1 failed at libavdevice/v4l2.c:516

Простой "сторож" (заменитель respawn в inittab) делает fork и, если потомок умирает, повторяет процедуру. На ЛОРе мне подсказали, как правильно запускать fork, чтобы дочерний процесс автоматически умирал при смерти родительского, и что ждать смерти дочернего можно простой функцией wait, а не велосипедом на kill...

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

Вот так просто выглядит интерфейс:
2015.07.30_14:56:54
Видеопоток через вебсокеты

вебсокеты дают около 7-8 кадров в секунду (jpeg, 640x480); потоковое вещание jpeg'ами — около 13-15 кадров в секунду (потолок я искусственно ограничиваю паузами по 50мс между окончанием загрузки очередного кадра и запросом последующего).
Tags: всячина, управление
Subscribe

  • M$ teams…

    Начал с сегодняшнего дня студентам ЮФУ удаленно лекции читать. У них все завязано на различные корпорации зла. И базовая работа - через teams. ОК,…

  • Почему systemd — дерьмо

    Уже давно на эту статейку натыкался, но все забывал в "закладки" добавить. Вот, добавляю: "systemd — отстой". Советую эту статейку почитать…

  • Разбираемся с утечками

    Занялся полным рефакторингом кода системы управления оптоволоконным спектрографом. А глаз уже "замыленный": ну вот не могу сходу обнаружить, где я…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments