Инструменты пользователя

Инструменты сайта


klipper:ustreamer

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
klipper:ustreamer [2022/11/10 13:04] korxifklipper:ustreamer [2022/11/14 13:02] (текущий) korxif
Строка 1: Строка 1:
 ====== Замена mjpg-streamer на ustreamer ====== ====== Замена mjpg-streamer на ustreamer ======
  
-**Зачем и почему?**+===== Зачем и почему? ===== 
 + 
 +µstreamer (читается как мю-стример) это mjpg-streamer "на стероидах". Таблица различий есть на [[https://github.com/pikvm/ustreamer#µstreamer|странице проекта]]. Из достаточно полезного - он быстрее (кодирует jpeg в несколько потоков), умеет не падать, если отключить камеру. В сообществе есть пруфы, что на mjpg-streamer'e картинка с c270 сыпалась, а с мю-стримером все заработало без проблем. 
 + 
 +Как пишет сам разработчик: 
 +"Если вы собираетесь вести прямую трансляцию с веб-камеры на заднем дворе и вам нужно ее контролировать, используйте mjpg-streamer. Если вам нужно качественное изображение с высоким FPS — µStreamer в помощь". Мю-стример не умеет работать с камерами с сервоприводами и управлением фокусировкой, но нам это и не нужно.
  
-ustreamer (читается как мю-стример) это mjpg-streamer "на стероидах". Таблица различий есть на [[[[https://github.com/pikvm/ustreamer#µstreamer|странице проекта]]. Из достаточно полезного - он быстрее (кодирует jpeg в несколько потоков), умеет не падать, если отключить камеру. В сообществе есть пруфы, что на mjpg-streamer'e картинка с c270 сыпалась, а с мю-стримером все заработало без проблем. 
 Ну и ложка дегтя - в kiauh mjpg-streamer на момент написания статьи пропал, плюс есть инфа что его (mjpg-streamer) разломали. У него там половину библиотек умерло, вернее они обновились новыми и нужно уже разбираться что да как. Ну и ложка дегтя - в kiauh mjpg-streamer на момент написания статьи пропал, плюс есть инфа что его (mjpg-streamer) разломали. У него там половину библиотек умерло, вернее они обновились новыми и нужно уже разбираться что да как.
  
Строка 10: Строка 14:
  
 </WRAP> </WRAP>
 +
 +Все, что делается по этой инструкции делается из unix-консоли. Т.е. первым делом надо поключиться к вашему уустройству с установленным Klipper по SSH (Putty, Xshell и подобное). Данный конкретный рецепт для OrangePI с установленной системой Raspbian. Для других устройств и OS смотрите сайт проекта µstreamer.
 +
  
 ===== Отключаем mjpg-streamer ===== ===== Отключаем mjpg-streamer =====
-Первым делом надо остановить и отключить mjpg-streamer, если он есть в системе. Так как ustreamer вырос из mjpg-streamer'a+Итак, если у нас уже был установлен mjpg-streamer, то прежде чем что-то делать, надо его отключить. Если его не было, сразу смотри следующий пункт. 
-Выполняем команды:+ 
 +Выполняем две команды, первая останавливает процесс, вторая убирает его из автозагрузки:
 <code bash> <code bash>
 sudo systemctl stop webcamd sudo systemctl stop webcamd
Строка 19: Строка 27:
 </code> </code>
 Такими действиями мы не удалили, но отключили mjpg-streamer. Такими действиями мы не удалили, но отключили mjpg-streamer.
 +
 +===== Установка ustreamer с нуля ======
 +Если до этого в системе не было стримера, то надо выполнить некоторые подготовительные действия.
 +
 +А именно установить утилиты для сборки из исходного кода (уже могут быть, мы же ставили клиппер!) и набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах, ffmpeg.
 +
 +<code bash>
 +sudo apt install build-essential ffmpeg
 +</code>
 +
  
 ===== Сборка ustreamer ===== ===== Сборка ustreamer =====
-Далее нам надо собрать ustreamer. В принципе, [[https://github.com/pikvm/ustreamer#building|инструкция есть на домашней странице проекта]] на гитхабе.+Далее нам надо собрать сам ustreamer. В принципе, [[https://github.com/pikvm/ustreamer#building|инструкция есть на домашней странице проекта]] на гитхабе.
  
 Пререквизиты для сборки make, gcc, libevent c поддержкой pthreads, libjpeg-turbo и libbsd. Пререквизиты для сборки make, gcc, libevent c поддержкой pthreads, libjpeg-turbo и libbsd.
Строка 81: Строка 99:
 Environment="SCRIPT_ARGS=1" Environment="SCRIPT_ARGS=1"
 User=klipper User=klipper
-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/+ExecStart=/usr/local/bin/ustreamer --process-name-prefix ustreamer-1 --log-level 0 --device /dev/video1 --device-timeout=8 --format=MJPEG --quality 80 --resolution 1280x720 --desired-fps=30 --host=0.0.0.0 --port=8080 --static /var/www/html/ustreamer-1/
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
Строка 111: Строка 129:
 </code> </code>
  
-Финально заходим в интерфейс клиппера - всё должно работать (если вы до этого уже настраивали камеру и прописывали все нужные настройки, конечно).+ 
 +Так как мы жестко привязали стример к порту 8080, видеопоток с камеры должен быть доступен по адресу http://pi_ip:8080/stream, где //pi_ip// - IP-адрес вашего одноплатника с установленным Klipper на котором мы все только что собирали. 
 + 
 +Если вы настраиваете камеру впервые - идем в web-интерфейс Klipper, раздел "Камеры" и добавляем подключенную камеру. Тип потока - MJPEG-поток, URL камеры - http://127.0.0.1:8080/stream 
 + 
 +Этот же самый URL должен быть в telegram.cfg, если вы ставили телеграм-бота.  
 +Должно быть что-то типа такого: 
 +<code> 
 +[camera] 
 +host: http://127.0.0.1:8080/stream 
 +</code> 
 + 
 +Финально проверяем в интерфейсе клиппера - всё должно работать. 
 +{{ :klipper:ustreamer:c270.png?400 |}} 
klipper/ustreamer.1668074642.txt.gz · Последнее изменение: 2022/11/10 13:04 — korxif