Присоединяйтесь!
Авторизация

Raspberry Pi и mjpg-streamer или видеотрансляция с

15 April 2014 - Автор Ivanserov8

Это моя первая статья о Raspberry Pi.

Сначала думал сделать IP-камеру для наблюдения за машиной под окном, но угол обзора у камеры всего около 30 градусов. Потом думал сделать видеоняню и столкнулся с тем , что светочувствительность никакая. Даже ночник не помог. В итоге просто сделал камеру с доступом по сети ради простого любопытства.

Часть первая. Установка необходимого ПО

Что использовалось:

Raspberry Pi,

Raspberry Camera module,

Приложение для смартфона (на Android) IP Cam Viewer.

Программа захвата видео и трансляции в сеть mjpg-streamer

По поводу установки образа на «малину» я ничего писать не буду, поскольку это уже много раз описывалось.

Подразумевается, что Вы уже умеете это делать.

Итак приступим.

Подключаемся по SSH к «малине» и первое, что мы делаем это запускаем обновление

sudo apt-get update

sudo apt-get upgrade (процедура длительная, наберитесь терпения)

Затем заходим в raspi-config и включаем поддержку камеры sudo raspi-config

меняем значение с Disable на Enable

Перезагружаемся, снова коннектимся и устанавливаем дополнительные библиотеки и приложения, которые нужны для mjpg-streamer:

sudo apt-get install libjpeg8-dev
sudo apt-get install cmake
wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip

разархивируем

unzip ./master –d ./ms (ms я взял сам, чтобы не писать постоянно полное имя)

Переходим в папку

cd /ms/mjpg-streamer-master/mjpg-streamer-experimental

и собираем

make clean all

Изменяем файл start.sh командой

sudo nano ms/mjpg-streamer-master/mjpg-streamer-experimental/start.sh

убираем две незакомментрованные строки и пишем вместо них вот эти

cd etc/ms/mjpg-streamer-master/mjpg-streamer-experimental

./mjpg_streamer -o "./output_http.so -w ./www" -i "./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100"

должно получиться вот так

"./output_http.so -w ./www" – вывод изображения на вебсервер

"./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100" -- захват видео с камеры и параметры захвата (640х480, 10 к/с, экспозиция АВТО, автобаланс белого, вертикальная синхронизация и ISO 100). На самом деле все эти параметры можно убрать, оставив только разрешение и частоту кадров, остальное эт просто опции.

Далее выходим из редактора nano командой Ctrl+X, затем Enter (соглашаемся с изменением) и Y (да). Находясь в папке mjpg-streamer-experimental запускаем наш скрипт ./start.sh

Должно запуститься и в консоли увидите следующее:

и светодиод на камере должен загореться.

Выход командой Ctrl+C. Скрипт остановится и светодиод погаснет.

Далее с браузера заходим по такой ссылке: http://ip-address-raspberry:8080/?action=stream (где ip-address-raspberry – это IP Вашей «малины»)и попадаем на вебсервер, нажимаем на Stream.

Естественно Ваши устройства должны быть в одной сети: компьютер с Putty, «малина» и телефон с Ip Cam Viewer. Если Ваш комп не видит малину, Но Вы точно знаете что SSH имеет доступ, то вероятно у Вас роутер блокирует связь между устройствами. Я так однажды попал. Не наступайте на те же грабли :)

Теперь нам надо подключиться с телефона к нашей камере. Я использовал программу IP Cam Viewer, так как она содержит богатый функционал.

Что там нужно сделать, так это только добавить Вашу камеру :

нажимаем «меню», «управление камерами», затем «+» для добавления новой камеры, выбираем «стандартный адрес», Имя: любое; Производитель «Generic URL»; Модель «Generic URL»; URL «вписываем точно такой же адрес «: http://ip-address-raspberry:8080/?action=stream», затем нажимем «Тест» и если изображение с камеры получено, то сохраняем.

Теперь о настройках камеры. Сама камера тоже имеет много настроек изображения. Начиная от разрешения и частоты кадров, заканчивая наложением всяких эффектов. Подробно можно вязть описание с ресурса https://github.com/jacksonliam/mjpg-streamer/blob/master/README.md

Собственно с этого ресурса я взял всю информацию по настройке. Как Вы заметили, я взял разрешение камеры 640х480 и частоту кадров 10 к/с. Максимально возможные эти параметры 1920х1080х30.

Собственно вот результат:

А это на телефоне:

15 April 2014
Ivanserov8
автор статьи

Комментариев: 19

  1. crazysova7

    15 April 2014 - Ответить

    Спасибо всё чётко и подробно.

    • Ivanserov8

      15 April 2014 - ответить

      Это мой первый пост, поэтому некоторые картинки у меня не вышло загрузить нормально. Если, что непонятно, постараюсь ответить.

  2. kolya04

    09 May 2014 - Ответить

    Статья интересная, но практически не получилось. после " unzip ./master –d ./ms " ответил «Archive: ./master.zip 45996ba372e6d87d82dd8338992996758fa7d376 caution: filename not matched: .d caution: filename not matched: ./ms» и на дальше все пошло с ошибками

    • ViZord1

      11 May 2014 - ответить

      А вот если это-же наберешь с клавы а не Ctrl-C — Ctrl-V, то заработает. В этой строке символ "-" не тот по ascii. (обычный 45, а этот 8211). Для человеческого глаза это один символ, а для линукса это разные символы. :)

    • Ivanserov8

      19 September 2014 - ответить

      тогда просто unzip master.zip

  3. kolya04

    11 May 2014 - Ответить

    все заработало, но задержка приличная, я бы сказал больше чем с вебкой, порой 3-4 сек. использовать для мобильной платформы, с управление через сеть ну очень тормознуто все будет

    • Ivanserov8

      12 May 2014 - ответить

      задержка естественно будет. Если нужно уменьшить задержку, то надо понизить качество видео. Задержка практически пропадает на разрешении 640х480, а также можно уменьшить частоту кадров до 15 к/с

  4. OsDima

    11 May 2014 - Ответить

    У меня заело на этом пункте pi@raspbmc:/$ make clean all -bash: make: command not found У меня установлено RASBMC и этот пункта «raspi-config» нет

    • kolya04

      11 May 2014 - ответить

      не знаю как в RASPBMC, а в RASPBIAN нужно зайти в папку, а потом «make clean all», может и в RASPBMC так же.

    • Ivanserov8

      12 May 2014 - ответить

      Переходим в папку cd /ms/mjpg-streamer-master/mjpg-streamer-experimental и собираем make clean all не выходя из этой папки собираем. make нужно установить.

  5. Andy

    01 July 2014 - Ответить

    Может кто-то пошагово объяснить как mgpg-streamer добавить в автозапуск, чтобы трансляция начиналась при включении RPi и как установить логин-пароль на просмотр видео через сеть ???

    • Ivanserov8

      02 July 2014 - ответить

      Почитайте здесь Как из Raspberry Pi сделать живую камеру. . Обязательно прочтите ниже комментарии

  6. Ivanserov8

    24 September 2014 - Ответить

    Внимание! Появились изменения! Пропала поддержка Rasberry Camera. При первой возможности я обновлю статью

  7. alemleon

    12 December 2014 - Ответить

    Хорошая статья, но застрял на том, что после запуска скрипта ./start.sh выдается can't cd to ect/ms/mjpg-streamer-master/mjpg-streamer-experimental

    • Ivanserov8

      12 December 2014 - ответить

      Возможно опечатка где-то. Ругается на то, что не может перейти в папку по указанному адрессу

  8. alemleon

    12 December 2014 - Ответить

    Дело в том, что директории ect/ms/mjpg-streamer-master/mjpg-streamer-experimental у меня нет?

    • Ivanserov8

      12 December 2014 - ответить

      а как Вы распаковывали?

  9. alemleon

    12 December 2014 - Ответить

    Выполнял все инструкции, как в статье.

  10. woofer

    21 December 2014 - Ответить

    Здравствуйте! Вы написали, Если Ваш комп не видит малину, Но Вы точно знаете что SSH имеет доступ, то вероятно у Вас роутер блокирует связь между устройствами Похоже у меня тот самый случай. Малинка и компьютер в одной сети подключены к одному роутеру. Подскажите пожалуйста как победить?

    • Ivanserov8

      21 December 2014 - ответить

      Отключите брандмауэр в роутере. Включите DHCP, если отключен.

  11. itsagooddaytodie

    21 December 2014 - Ответить

    Спасибо большое за статью! А может кто нибудь подскажет, где можно сменить порт стрима с 8080 на свой?

  12. apssent

    11 January 2015 - Ответить

    Супер! Спасибо автору. А как можно реализовать просмотр нескольких камер одновременно?

    • Ivanserov8

      11 January 2015 - ответить

      Нужно прописывать каждую камеру по ip-адресу в программу

  13. Sanchopancho

    18 January 2015 - Ответить

    Огромная благодарность автору статьи. Все заработало отлично(с учетом некоторых комментариев). По-моему это самая лучшая статья на эту тему во всем интернете. Я до этого просмотрел не менее 5-и статей на разных сайтах. Короче — здесь ничего лишнего и добавить нечего. (если что, я чайник в этих делах).

  14. Sanchopancho

    19 January 2015 - Ответить

    Уважаемый Ivanserov8, а не могли бы Вы описать на своем примере рассказать как разместить видео на сайте Народного мониторинга. Из других источников я не могу разобраться в каком файле нужно исправить порт для трансляции. (у меня книжка «Raspberri Pi практическое руководство».)Там хорошо все написано, но мутновато.

    • Ivanserov8

      19 January 2015 - ответить

      Опишите, пожалуйста, топологию Вашей сети: внешний (белый) IP имеется? Сможете настроить проброс портов на роутере? Вкратце опишу: имеем нашу камеру с поротом вывода 8080. Подключаем её к роутеру и получаем от него по DHCP IP для камеры. Далее на роутере настраиваем маршрутизацию на этот IP и указываем порт назначения 8080. Далее в народном мониторинге добавляете Вашу камеру но с белым IP-адресом и портом 8080. Адрес будет такой «yourip:8080/?action=stream». Я не задавался такой целью, поэтому это только в теории.

  15. titanium

    26 January 2015 - Ответить

    Проблема с запуском с параметром -b (backgound mode) — пишет «forked to background (3324)» но такого процесса нет. А так две камеры не стартуют- только одна.

  16. RelMayer

    27 February 2015 - Ответить

    На данный момент 27.02.2015. Когда распаковываешь, то все оказывается в деректории home/pi/ там лежит ms, но не в etc/ms По этой причине не находит его командой cd /etc/ms/mjpg-streamer-master/mjpg-streamer-experimental так как его там нету. Как я исправил эту проблему, через WinSCP. Зашел с правами root. Переместил папку в раздел /etc/ Но у меня появилась такая проблема. Не знаю что мне делать... pi@raspberrypi /etc/ms/mjpg-streamer-master/mjpg-streamer-experimental $ ./start.sh ./start.sh: 29: ./start.sh: ./mjpg-streamer: not found

    • RelMayer

      27 February 2015 - ответить

      ./start.sh: 29: ./start.sh: ./mjpg_streamer: not found

    • Ivanserov8

      27 February 2015 - ответить

      копирование в другую папку командой cp -R. Например cp -R ms /etc скопирует папку ms в /etc

  17. faraday

    23 April 2015 - Ответить

    Прочитав статью не совсем понял, интересуют два вопроса: 1) можно ли транслировать видео 720p/30 при подключении малинки по ethernet? 2) можно ли архивировать видеофайл на внешний диск, или скажем на диск расшаренный по сети?

    • Ivanserov8

      23 April 2015 - ответить

      1) Да, конечно можете. 2) Средствами mjpg-streamer нельзя. Но Вы можете взять поток с «малины» другой программой. Я взял IP Can viewer. Можете попробовать прикрутить motion прям на самой «малине». Motion имеет гораздо больший функционал и предназначена для построения видеонаблюдения. Ещё есть AVReg. Отечественная разработка. Работает только на linux-машинах. Вся документация на русском.

  18. Rikigreak

    23 October 2017 - Ответить

    Здравствуйте Ivanserov8 !Хорошая статья !Помогите не могу понять При выполнении командыsudo apt-get install libjpeg8-devпроизводит следующее:produces the following:Reading package lists ... DoneBuilding dependency treeReading state information ... DonePackage libjpeg8-dev is not available, but is referred to by another package.This may mean that the package is missing, has been obsoleted, oris only available from another sourceHowever the following packages replace it:libjpeg62-turbo-devE: Package 'libjpeg8-dev' has no installation candidateмогу ли я установить libjpeg62-turbo-devas?это нормально ?Я установил libjpeg62-turbo-devДалее там следуя инструкции все сделал но в каталоге mjpg-streamer-experimentalнет папки mjpg_streamerпоэтому  если менять две строчки убираем две незакомментрованные строки и пишем вместо них вот эти cd etc/ms/mjpg-streamer-master/mjpg-streamer-experimental ./mjpg_streamer -o "./output_http.so -w ./www" -i "./input_raspicam.so -x 640 -y 480 -fps 10 -ex auto -awb auto -vs -ISO 100"то при выполнении не находит этой папки если меняю название  mjpg_streamer на другие которые есть то говорит ./start.sh: 32: ./start.sh: ./Makefile: Permission denied ну и я там разные каталоги пробовал тоже самое Все делаю из под root через sshТакже когда выполняю вот эту команду root@raspberrypi:/etc/ms/mjpg-streamer-master/mjpg-streamer-experimental# make clean allТоже ругается [ ! -f _build/Makefile ] || make -C _build cleanrm -f mjpg_streamer *.so[ -d _build ] || mkdir _build[ -f _build/Makefile ] || (cd _build && cmake  -DCMAKE_BUILD_TYPE=Release ..)Illegal instructionMakefile:17: recipe for target 'all' failedmake: *** [all] Error 132Подскажите как решить проблему ?Спасибо.

  19. denik

    13 May 2018 - Ответить

    Подскажите, есть ли возможность у данного устройства вести стрим как видео так и аудио потока, с возможность транслировать в сеть? или записи на себя?

Отправить комментарий

Авторизуйтесь для отправки комментария

Присоединяйтесь
Новые сообщения
  • Disabling IRQ
    10 December, 2019
    Тут еще заметил один нюанс. Если запустить программу сразу после перезагрузки, она работает без каких-либо нареканий. Можно...…
  • Вопрос по энкодеру
    10 December, 2019
    Если это родная CSI камера, то у ** raspivid ** есть параметр ** --annotate ** , который накладывает текст на видео …
  • Disabling IRQ
    10 December, 2019
    Я думаю, что проблема в ядре, попробуй обычное, а не realtime Попробуй BT отключить, он висит в 3-ке на UART'е - `...…
  • Disabling IRQ
    10 December, 2019
    Был вариант что это происходит из-за одновременного обращения к ttyS0 из разных потоков. Сейчас переделал программу и...…
  • Disabling IRQ
    10 December, 2019
    ``` [ 199.901675] ------------[ cut here ]------------ [ 199.901708] WARNING: CPU: 1 PID: 86 at kernel/irq/handle.c:151...…
  • Disabling IRQ
    10 December, 2019
    А что в логи ядра (dmesg, /var/log/messages) пишется, когда такая ошибка вываливается? …
  • Disabling IRQ
    10 December, 2019
    Пишу программу для Raspberry PI 3 Model B v1.2, система Raspbian GNU/Linux 9.4 (stretch) realtime . При работе с ttyS0 у меня...…
  • Установка node-red-contrib-modbus
    08 December, 2019
    Вроде бы все прошло удачно. Обновил NodeJS. Попытался установить Node-red-contrib-modbus. Как будто бы установка прошла...…
  • Вопрос по энкодеру
    03 December, 2019
    Добрый день! Необходимо сделать так чтобы метраж отмотанного троса накладывался на видео с камеры. Сможет кто-нибудь помочь? …
  • MAX31855 + L298N
    01 December, 2019
    Здравствуйте столкнулся с такой проблемой,задача кода управлять частотой вражения двигателя в зависимости от температуры...…
  • Выбор для новичка
    30 November, 2019
    @nbo#5996 спасибо большое ;) …
  • Выбор для новичка
    30 November, 2019
    Бери 4-ую. все модели совместимы между собой. Все инструкции Pi3 подойдут и к Pi4 …
  • Выбор для новичка
    30 November, 2019
    Прошу помощи у юзеров Малинки, определиться с покупкой начинающему пользователю Выбор стоит между raspberry pi 3 model b и...…
  • 5 дюймовый экран переключился с HDMI на AV2
    29 November, 2019
    как же бесит всё это китайское говнище, которое без допиливания не работает …
  • 5 дюймовый экран переключился с HDMI на AV2
    29 November, 2019
    Тут нашли решение проблемы https://www.raspberrypi.org/forums/viewtopic.php?t=249997#p1572992 …
  • NRF24L01
    28 November, 2019
    #include <stdio.h> #include <unistd.h> #include <wiringPi.h> #include <wiringPiSPI.h> int main()...…
  • NRF24L01
    28 November, 2019
    Ну хоть бы пример кода привёл, как считываешь состояние регистров. …
  • NRF24L01
    28 November, 2019
    Подключил радио модуль NRF24L01 к raspberry по следующей схеме...…
  • Нужно доработать приложение на малине и на андроиде
    28 November, 2019
    Управление gpio с помощью приложения на android Сервер на C# Клиент на Java …
  • Вопрос о аозможностях
    26 November, 2019
    > @Aleksei#5985 То есть возможно все это на Raspberry, я правильно понял? Можно смело лезть в документацию? :-...…
  • Вопрос о аозможностях
    25 November, 2019
    И ещё вопрос. Я не дружу с Линукс. Мой опыт использования Ubuntu был сплошной мукой. Можно ли теоретически все это сделать на...…
  • Вопрос о аозможностях
    25 November, 2019
    То есть возможно все это на Raspberry, я правильно понял? Можно смело лезть в документацию? :-) …
  • Вопрос о аозможностях
    25 November, 2019
    @mojo#5983 настроить не смогу, а вот с паяльником я с детства дружу :-) …
  • Вопрос о аозможностях
    25 November, 2019
    Ну тогда гугли по запросу "Raspberry Pi Wi-Fi repeater". И для репитера скорее всего потребуются 2 внешних USB адаптера, т.к...…
  • Вопрос о аозможностях
    25 November, 2019
    Да, такие устройства тоже есть. Но цена раз в 20 выше, чем плата Raspberry. …