Апельсиновый осьминог и IP-камера
Так с этой камерой не получилось вообще ничего хорошего. Потому что она ни официально, ни с бубном, не отдавала MJPEG-поток, который хочет OctoPrint для встраивания в веб-интерфейс. Отдельно, впрочем, процесс печати через нее контролировать было можно, через VLC или подобный плеер, понимающий RTSP. Далее я предпринял несколько вялых попыток таки подружить камеру с OctoPrint (ведь хотелось возможность записи таймлапсов), но чего-то стабильного так и не получилось. Пытался конвертировать поток в реальном времени с помощью ffmpeg (как самое очевидное) и каких-то более узких решений, получался треш и падучий угар.
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 все прилично.
Один из вариантов вебморды. Раскопки в его коде помогли понять, 'что ваще происходит'.
Не буду заниматься подробным описанием противоестественных деяний, которые творились в течение следующих пары часов, отмечу лишь, что я ковырял код веб-интерфейса этой гнусной поделки, попутно нашел по каким запросам она принимает и выдает некоторые настройки, и таки докопался до сокровенной тайны. Суть в том, что при сохраненении снапшота как раз переходит сброс разрешения до минимального. А вот если добавить один параметр…
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-камеры, которые спокойно выдают MJPG-поток и не выделываются. Но это было бы скучно.
Еще больше интересных статей
Qidi Q1 Pro разбор экструдера (для начинающих Qidiводов)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Простое решение проблемы легкой кривизны стола Creality K1C b K1SE (спойлер - гроверы)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Ух, напугали сначала. Там же 5...
Ну красиво же получилось🥲 я на...
Большое спасибо ☺️ На самом де...
Доброго вечера, ребята. Помоги...
Написал код. Всё работает , но...
Всем доброго дня,с прошлого пр...
Собственно сслка на сообщение...