Пост

Настройка MJPG-Streamer на Raspberry Pi Zero W с USB-веб-камерой

Эта инструкция поможет вам запустить **видеопоток с USB-веб-камеры** на Raspberry Pi. Вы сможете смотреть видео в реальном времени через любой веб-браузер по сети. Это полезно для создания домашней камеры наблюдения, дверного глазка или IoT-проектов

Настройка MJPG-Streamer на Raspberry Pi Zero W с USB-веб-камерой

Настройка MJPG-Streamer на Raspberry Pi Zero W с USB-веб-камерой

Описание проекта

Эта инструкция поможет вам запустить видеопоток с USB-веб-камеры на Raspberry Pi. Вы сможете смотреть видео в реальном времени через любой веб-браузер по сети. Это полезно для создания домашней камеры наблюдения, дверного глазка или IoT-проектов.


Что понадобится

  1. Raspberry Pi (с Wi-Fi или Ethernet)
  2. MicroSD-карта (8 ГБ и более, с установленной ОС)
  3. USB-веб-камера (поддерживается UVC — большинство современных)
  4. Блок питания (рекомендуется 5 В / 2 А)
  5. Кабель Micro-USB для питания
  6. Компьютер для настройки (для первоначальной настройки)

Шаг 1: Установка и настройка ОС

  1. Скачайте Raspberry Pi OS (ранее Raspbian) с официального сайта:
    https://www.raspberrypi.com/software/

  2. Используйте Raspberry Pi Imager (рекомендуется) или balenaEtcher, чтобы записать образ на microSD-карту.

  3. Активируйте SSH и Wi-Fi при необходимости до первого включения:
    • В папке boot на карте создайте файл ssh (без расширения).
    • Создайте файл wpa_supplicant.conf со следующим содержимым:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      country=RU
      
      network={
          ssid="ВАШЕ_СЕТЕВОЕ_ИМЯ"
          psk="ВАШ_ПАРОЛЬ"
          key_mgmt=WPA-PSK
      }
      

    Замените ВАШЕ_СЕТЕВОЕ_ИМЯ и ВАШ_ПАРОЛЬ на данные вашей Wi-Fi-сети.
    country=RU — для России (важно для соответствия радиочастотным нормам).

  4. Вставьте карту в Raspberry Pi, подключите питание.

Шаг 2: Подключение к Raspberry Pi по SSH

  1. Узнайте IP-адрес Raspberry Pi в сети:
    • Проверьте на роутере список подключённых устройств.
    • Или используйте nmap:
      1
      
      nmap -sn 192.168.1.0/24
      

      (замените на вашу подсеть)

  2. Подключитесь по SSH:
    1
    
    ssh IP_АДРЕС
    

    Пользователь по умолчанию: pi Пароль по умолчанию: raspberry

  3. (Опционально) Смените пароль:
    1
    
    passwd
    
  4. Обновите систему:
    1
    
    sudo apt update && sudo apt upgrade -y
    

Шаг 3: Подключение USB-веб-камеры

  1. Подключите веб-камеру к Raspberry Pi через.

  2. Проверьте, определилась ли камера:
    1
    
    ls /dev/video*
    

    Должно появиться: /dev/video0 (или больше, если камер несколько).

  3. Установите утилиту для проверки:
    1
    
    sudo apt install v4l-utils -y
    
  4. Проверьте параметры камеры:
    1
    
    v4l2-ctl --list-formats-ext
    

Шаг 4: Установка MJPG-Streamer

mjpg-streamer — легковесный потоковый сервер для веб-камер.

1. Установка зависимостей:

1
sudo apt-get install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake git -y

2. Клонирование репозитория:

1
2
cd ~
git clone https://github.com/jacksonliam/mjpg-streamer.git

Используем форк jacksonliam/mjpg-streamer, так как он содержит улучшения и работает на ARM (включая Raspberry Pi).

3. Сборка:

1
2
cd mjpg-streamer/mjpg-streamer-experimental
make

Если ошибка с make, проверьте, установлены ли cmake и build-essential.

4. Установка (опционально):

1
sudo make install

Шаг 5: Запуск MJPG-Streamer

Запустите сервер вручную:

1
2
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -d /dev/video0 -f 10 -r 640x480"

Пояснение параметров:

  • -o "output_http.so -w ./www" — включает веб-сервер, раздаёт файлы из папки www
  • -i "input_uvc.so -d /dev/video0" — использует UVC-камеру по умолчанию
  • -f 10 — частота кадров: 10 FPS
  • -r 640x480 — разрешение

Если камера не отвечает, попробуйте другие разрешения: 320x240, 1280x720


Шаг 6: Просмотр видео в браузере

  1. Откройте браузер на любом устройстве в той же сети.
  2. Перейдите по адресу:
    1
    
    http://IP_АДРЕС_ПИ:8080
    

    (например, http://192.168.1.175:8080) mjpg_streamer

  3. Вы увидите:
    • Страницу с видео
    • Кнопки для управления (если поддерживается)
    • Ссылку на поток /?action=stream mjpg_streamer

Шаг 7: Автозапуск при старте системы

Чтобы mjpg-streamer запускался автоматически при включении Raspberry Pi.

1. Создайте скрипт запуска:

1
nano ~/start_stream.sh

Вставьте:

1
2
3
4
#!/bin/bash
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -d /dev/video0 -f 10 -r 640x480"

Сохраните: Ctrl+O → Enter → Ctrl+X

2. Сделайте скрипт исполняемым:

1
chmod +x ~/start_stream.sh

3. Добавьте в автозагрузку через crontab:

1
crontab -e

Добавьте в конец:

1
@reboot /home/pi/start_stream.sh > /home/pi/stream.log 2>&1 &

Это запустит скрипт при загрузке и сохранит логи в stream.log для отладки.


Шаг 8: (Опционально) Защита потока паролем

Чтобы никто посторонний не мог просматривать поток:

1. Измените веб-интерфейс:

Редактируйте файл www/index.html и добавьте базовую аутентификацию или используйте Nginx как прокси.

2. Пример с Nginx (рекомендуется для продвинутых):

1
2
sudo apt install nginx apache2-utils -y
sudo htpasswd -c /etc/nginx/.htpasswd пользователь

Настройте Nginx как прокси к localhost:8080 с паролем.


Шаг 9: Оптимизация для Raspberry Pi Zero

Pi Zero W — слабое устройство. Советы:

  • Используйте низкое разрешение: 640x480 или 320x240
  • Уменьшите FPS: -f 5 или -f 10
  • Не используйте H.264, если не установлен v4l2compress
  • Подключайте камеру через хаб с питанием

Устранение неполадок

Проблема Решение
Нет /dev/video0 Проверьте подключение камеры, перезагрузите Pi
Камера не поддерживается Убедитесь, что камера UVC-совместима
Сервер не запускается Проверьте права, LD_LIBRARY_PATH, зависимости
Видео тормозит Уменьшите разрешение и FPS
Не работает автозапуск Проверьте путь в crontab, права на скрипт

Полезные ссылки


Заключение

Теперь у вас есть работающая видеокамера на базе Raspberry Pi Zero W, доступная через веб-браузер. Вы можете использовать её как:

  • Домашнюю камеру наблюдения
  • Дверной видеоглазок
  • Мониторинг питомца
  • Умный дом (интеграция с Home Assistant)

Если нужно — могу помочь с интеграцией в Home Assistant, Telegram-бота с видео, или HTTPS-доступом из интернета (через ngrok или Tailscale).

Авторский пост защищен лицензией CC BY 4.0 .

Популярные теги