Это старая версия документа!
Содержание
Замена mjpg-streamer на ustreamer
Здесь описывается локальная сборка, в идеале надо сделать пакет, но это, возможно, в будущем.
Отключаем mjpg-streamer
Первым делом надо остановить и отключить mjpg-streamer, если он есть в системе. Так как ustreamer вырос из mjpg-streamer'a. Выполняем команды:
sudo systemctl stop webcamd sudo systemctl disable webcamd
Такими действиями мы не удалили, но отключили mjpg-streamer.
Сборка ustreamer
Далее нам надо собрать ustreamer. В принципе, инструкция есть на домашней странице проекта на гитхабе.
Пререквизиты для сборки make, gcc, libevent c поддержкой pthreads, libjpeg-turbo и libbsd.
sudo apt install libevent-dev libjpeg62-turbo-dev libbsd-dev libgpiod-dev libsystemd-dev
Собираем его (по-умолчанию в нашем домашнем каталоге, ~/, он же /home/klipper). Сборку делаем с поддержкой GPIO (не смог придумать кейс, но пусть будет) и поддержкой SYSTEMD (для автозапуска).
git clone --depth=1 https://github.com/pikvm/ustreamer cd ustreamer WITH_GPIO=1 WITH_SYSTEMD=1 make ./ustreamer --help
Установка ustreamer
В итоге, если все получилось, инсталлируем стример локально.
sudo make install
После выполнения этой команды бинарник стримера будет установлен в /usr/local/bin/
Дальше нам надо решить вопрос с автозапуском. Что нужно сделать описано здесь. Но мы приведем здесь последовательность действий, адаптированную под нашу систему.
Первым делом надо убедиться, что установка прошла успешно:
ls -l /usr/local/bin/ustreamer -rwxr-xr-x 1 root root 419392 ноя 10 12:18 /usr/local/bin/ustreamer
У вас права доступа (-rwxr-xr-x) должны быть как в примере выше.
Запускать процесс будем от имени пользователя klipper.
Добавляем пользователя в группу video (он там уже должен быть, но хуже от команды точно не будет):
sudo usermod -a -G video klipper
Далее нам нужно создать руками конфигурационный файл для systemd. В нашем случае мы не будем делать как предлагает автор ustreamer'a, сделаем конфиг под конкретное видеоустройство, а именно /dev/video1.
Используем наиболее привычный вам текстовый редактор в unix-среде (vim, nano, joe..):
sudo nano /etc/systemd/system/ustreamer.service
в файле пишем следующее (обратите внимание - формат, fps и качество задаются в ключах resolution, desired-fps и quality соответственно):
[Unit] Description=uStreamer service After=network.target [Service] Environment="SCRIPT_ARGS=1" User=ustreamer ExecStart=/usr/local/bin/ustreamer --process-name-prefix ustreamer-1 --log-level 0 --device /dev/video1 --device-timeout=8 --quality 100 --resolution 1280x720 --desired-fps=30 --host=0.0.0.0 --port=8080 --static /var/www/html/ustreamer-1/ [Install] WantedBy=multi-user.target