Вебкамера в 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 указываем вашего пользователя октопринта.

Taz
Author: Taz

Posted in:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *