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

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). Для человеческого глаза это один символ, а для линукса это разные символы. :)

      • kolya04

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

        Здравствуйте ViZord1, спасибо что ответили, но у меня после следующего шага опять все на так. после «cd /ms/mjpg-streamer-master/mjpg-streamer-experimental» отвечает "-bash: cd: /ms/mjpg-streamer-master/mjpg-streamer-experimental: No such file or directory"

        • ViZord1

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

          а тогда вместо «cd /ms/mjpg-streamer-master/mjpg-streamer-experimental» можно попробовать «cd ./ms/mjpg-streamer-master/mjpg-streamer-experimental»

          • kolya04

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

            попробовал, получилось. после "./start.sh" написал что запустилось, но через браузер не могу ничего увидеть, По поводу того, что роутер что-то не пропускает, месяц назад пробовал запустить видеопоток на вебке, тогда все заработало, но не устроило качество вебки, и тогда все снес, сейчас все по-новой и ничего не устанавливал.Кстати, при запуске горит индикатор на самой камере, а видео почему-то нет.

    • Ivanserov8

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

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

  3. kolya04

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

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

    • Ivanserov8

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

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

      • kolya04

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

        Так и стояло 640х480, кадров не помню, но судя по тому что видео было с рывками явно меньше 25 кадров, но заметил если малина через Ethernet-кабель что задержки нет.

        • Ivanserov8

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

          возможно у Вашего роутера не хватает производительности или у Вас WiFi-USB может не справляется с нагрузкой

  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-адресу в программу

      • apssent

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

        Можно по подробнее?

        • Ivanserov8

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

          Если у Вас несколько «Малин» с камерами, то просто соединяете их через «свитч»(при условии что у них статичные адреса). Если адреса присваиваются по DHCP, то через роутер.

          • apssent

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

            Вы не совсем поняли мой вопрос, я имел ввиду вот что, можно ли к одной малине подключить допустим 2 камеры и просматривать с них изображение? Я где то видел статью, там товарищ к mjpg-streamer подключить две камеры и все работало. Вот хотелось бы узнать как он это сделал.

            • Ivanserov8

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

              Можно, только вебкамеры тормозить будут. Я с одной пробовал, так понижал разрешение до 640х480 и только тогда становилась приемлемое качество. Вы спросите лучше у того, кто это сделал. А ещё лучше ссылку бы нам скинули сюда

  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». Я не задавался такой целью, поэтому это только в теории.

      • Ivanserov8

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

        Ради интереса куплю внешний IP у провайдера и попробую все на деле.

        • Sanchopancho

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

          Очень благодарен за внимание к чайнику. Я пока переварю Ваш ответ. А там видно будет. Тоесть, как я понял, мне всего лишь нужно инициализировать порт в роутере 8080. А белый IP-адрес это внешний, а не локальный?

          • Ivanserov8

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

            Да это внешний. Все правильно поняли. Когда Вы будете в народном мониторинге указаывать Ваш внешний IP, то роутер автоматически переадрессует на локальный IP. В этом и есть суть проброса портов

            • Sanchopancho

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

              … так. Теперь еще пару часиков с бубном попляшу…

              • Sanchopancho

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

                Уважаемый Ivanserov8. С Вашей подсказкой, Божьей помощью и бубном все у меня заработало. С народного мониторинга получаю снимки. А по сети изображение почти без задержки. Премного благодарен!

                • Ivanserov8

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

                  Очень рад, что Вам помогли мои советы! Удачи в Ваших проектах.

                  • Sanchopancho

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

                    Уважаемый Ivanserov8. А не подскажете ли Вы как установить файл start.sh в автозапуск. Я пробовал вставлять скрипт от Time-lapse камеры в /etc/rc.lokal — программа автоматически запускалась при включении Малины. А вот start.sh почему-то не запускается.И еще (если я Вам не надоел) — как находясь в консоли можно удалить системный файл. Или, если есть такая возможность, из-под графической оболочки.

                    • Ivanserov8

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

                      я добавлял файл в init.d и автозапуск получался. Если используются два скрипта к одной камере, то естественно будет работать только тот скрипт, который первым запустился и инициализировал камеру. Удаление файлов команда rm под суперпользователем root.

  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 - ответить

        29 — это строка в скрипте, где ошибка. Надо внимательно проверить путь. Потому как если Вы перенесли скрипт в другое место, то и путь в скрипте должен поменяться, поэтому и пишет not found

    • Ivanserov8

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

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

      • RelMayer

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

        Спасибо большое! Все получилось, но вышла еще одна проблема, у меня Wi-Fi отключается автоматически после 2-3 мин работы с этим приложением. Точно так же с Ethernet подключением. Прим том, что я настроил, чтоб Wi-Fi не отключался вообще: cat /sys/module/8192cu/parameters/rtw_power_mgnt Чтобы отключить функцию управления питанием, нужно создать новый файл: sudo nano /etc/modprobe.d/8192cu.conf и прописать строку options 8192cu rtw_power_mgnt=0 де 0 — Управление питанием отключено

      • Sanchopancho

        07 March 2015 - ответить

        Уважаемый Ivanserov8. Подскажите пожалуйста что означает параметр -R при копировании и какие еще бывают параметры. И еще какой папирус мне почитать чтобы не задавать глупые вопросы. Огромное спасибо.

        • Ivanserov8

          07 March 2015 - ответить

          -R Если исходный_файл указывает на каталог, cp копирует этот каталог вместе со всем деревом файловой иерархии, которое он содержит. Ес- ли исходный_файл оканчивается на /, копируется не сам каталог, а только его содержимое. Эта опция также указывает на необходимость копирования символических ссылок, а не объектов, на которые они указывают, и заставляет cp создавать специальные файлы вместо того, чтобы копировать их, как обычные. Создаваемые каталоги имеют те же права доступа, что и исходные каталоги, вне зависимости от действу- ющего для процесса значения umask. Я читаю книги Колесникова. Хороший писатель.

      • RelMayer

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

        Уважаемый Ivanserov8. Не можете подсказать, в чем причина, когда запускаю скрипт ./start.sh. То через некоторе время Raspberry Pi абсолютно зависает.

        • Ivanserov8

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

          А в чём проявляется зависание? Дистрибутив обновляли?

          • RelMayer

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

            Последовательность как я настраивал малинку. Установил ОС, настроил сразу в настройках камеру, SSH. Обновил: sudo apt-get update sudo apt-get upgrad установил точно время типа sudo date -s «8 JAN 2015 12:00:00». обновил ядро sudo rpi-update Настроил удаленный доступ, через Ethernet кабель и через Wi-Fi Исправил проблему с Wi-Fi, он теперь работает постоянно целые сутки, а раньше тоже через некоторое время отключался из за того, что малинка его отключала от питания. Установил для удаленного доступа sudo apt-get install xrdp. Установил sudo apt-get install apache2 php5 libapache2-mod-php5 Дальше все как вы описали по посту делал только с некоторыми проблемами, что я указал выше. Программа запустилась, Raspi Cam вела стрим, но через некоторое время малинка зависает, на сайт не заходит, графический интерфейс не реагирует не на что(мышку, клавиатуру). На камере самой, горит светодиод и на малинке тоже горят.

            • Ivanserov8

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

              В общем вот Январское обновление Raspberry Pi, ломающее стример

  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 - Ответить

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

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

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

Присоединяйтесь
Новые сообщения