Кремень КД Реклама
Кремень КМ Реклама

Апельсиновый осьминог и IP-камера

eta4ever
Идет загрузка
Загрузка
09.06.2017
7377
22
Техничка

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

58
Апельсиновый осьминог и IP-камера
Сама по себе идея подружить OctoPrint с IP-камерой мне изначально казалась правильной. Минимизируем нагрузку на малину-апельсину, плюс камера работает независимо и позволит посмотреть, что там вообще просходит, при зависании или отключении OctoPrint или микрокомпьютера целиком. Опять же, одна древняя 0.3-мегапиксельная камера у меня валялась…

Так с этой камерой не получилось вообще ничего хорошего. Потому что она ни официально, ни с бубном, не отдавала MJPEG-поток, который хочет OctoPrint для встраивания в веб-интерфейс. Отдельно, впрочем, процесс печати через нее контролировать было можно, через VLC или подобный плеер, понимающий RTSP. Далее я предпринял несколько вялых попыток таки подружить камеру с OctoPrint (ведь хотелось возможность записи таймлапсов), но чего-то стабильного так и не получилось. Пытался конвертировать поток в реальном времени с помощью ffmpeg (как самое очевидное) и каких-то более узких решений, получался треш и падучий угар.
Апельсиновый осьминог и IP-камера

Vstarcam C7825WIP смотрит на ультумбочку без каких-либо эмоций.



Сделал большую паузу, да и вообще не собирался возвращаться к данной идее, но в руки попала забавная игрушка - дешевая бытовая IP-камера от китайских затейников. Мегапиксельная (1280х720), с управлением (поворот-наклон, без зума) и стоимостью в районе 2000 рублей. Называется Vstarcam C7825WIP. Свистелок у нее полно, но они суть оффтоп, главное, картинку за эти деньги выдает годную. Но может ли MJPEG?

Да, может, но не без бубна, и с определенными нюансами. Все, как я люблю.

Поковырявшись в гугле (документация об этом молчит), нахожу следующее:

MJPG - http://адрес:81/videostream.cgi?user=логин&pwd=пароль

Snapshot - http://адрес:81/snapshot.cgi?user=логин&pwd=пароль

В таком виде оно прописывается в OctoPrint и работает. Эпик вин? Нет, поскольку оно буквально несколько секунд поработало в разрешении 640х360 (с этим еще можно смириться) и слетело на 320х180 (что вообще жесть). Касается, разумеется, только MJPG-потока, с RTSP все прилично.
Апельсиновый осьминог и IP-камера

Один из вариантов вебморды. Раскопки в его коде помогли понять, 'что ваще происходит'.



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

http://адрес:81/snapshot.cgi?res=0&user=логин&pwd=пароль

То и снапшот с разрешением 640х360, и видеопоток аналогичный. Но выглядел процесс забавно. Вот такой запрос:

http://адрес:81/camera_control.cgi?loginuse=логин&loginpas=пароль& param=15&value=0

(между & и param пробела не надо, просто иначе получается код ¶)

Выставляет максимальное доступное для MJPG разрешение, как раз 640х360. Дальше я запускаю печать с записью таймлапса, и при первой смене слоя разрешение падает. Выполняю вышеуказанный запрос - снова поднимается. Дошло не сразу.
Апельсиновый осьминог и IP-камера

Апельсиновый осьминог и фееричное разрешение.



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

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

58
Комментарии к статье