Вебкамера в OctoPrint
Published on 07.05.2024
С версии 1.9.0 OctoPrint перешел на новый стек для работы вебкамеры — camera-streamer. Не на всех устройствах оно работает из коробки. Настраиваем.
Для начала соберем camera-streamer под свою железку
git clone https://github.com/ayufan-research/camera-streamer.git --recursive
apt-get -y install libavformat-dev libavutil-dev libavcodec-dev libcamera-dev liblivemedia-dev v4l-utils pkg-config xxd build-essential cmake libssl-dev
cd camera-streamer/
make
sudo make install
Посмотрим, какие устройства мы видим.
v4l2-ctl --list-devices
В моем случае вывод был такой
taz@octon3max:~$ v4l2-ctl --list-devices
cedrus (platform:cedrus):
/dev/video0
/dev/media0
Full HD webcam: Full HD webcam (usb-1c1b000.usb-1):
/dev/video1
/dev/video2
/dev/media1
Наше устройство висит на /dev/video1
ну и строка для запуска
/usr/local/bin/camera-streamer --camera-path=/dev/video1 --camera-format=MJPG --camera-video.disabled --http-listen=0.0.0.0
Управление камерой http://ip:8080/control
Поток http://ip:8080/stream (может быть алиас http://ip:8080/?action=snapshot)
Снимки http://ip:8080/snapshot (может быть алиас http://ip:8080/?action=stream)
Добавляем сервис
sudo nano /etc/systemd/system/webcam.service
[Unit]
Description=Webcam daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=octo
Restart=on-failure
RestartSec=60
ExecStart=/usr/local/bin/camera-streamer --camera-path=/dev/video0 --camera-format=MJPG --camera-video.disabled --http-listen=0.0.0.0
[Install]
WantedBy=multi-user.target
В строку ExecStart ставим команду, собранную выше. В строку User указываем вашего пользователя октопринта.
Posted in: