Настройка MJPG-Streamer на Raspberry Pi Zero W с USB-веб-камерой
Эта инструкция поможет вам запустить **видеопоток с USB-веб-камеры** на Raspberry Pi. Вы сможете смотреть видео в реальном времени через любой веб-браузер по сети. Это полезно для создания домашней камеры наблюдения, дверного глазка или IoT-проектов
Настройка MJPG-Streamer на Raspberry Pi Zero W с USB-веб-камерой
Описание проекта
Эта инструкция поможет вам запустить видеопоток с USB-веб-камеры на Raspberry Pi. Вы сможете смотреть видео в реальном времени через любой веб-браузер по сети. Это полезно для создания домашней камеры наблюдения, дверного глазка или IoT-проектов.
Что понадобится
- Raspberry Pi (с Wi-Fi или Ethernet)
- MicroSD-карта (8 ГБ и более, с установленной ОС)
- USB-веб-камера (поддерживается UVC — большинство современных)
- Блок питания (рекомендуется 5 В / 2 А)
- Кабель Micro-USB для питания
- Компьютер для настройки (для первоначальной настройки)
Шаг 1: Установка и настройка ОС
-
Скачайте Raspberry Pi OS (ранее Raspbian) с официального сайта:
https://www.raspberrypi.com/software/ -
Используйте Raspberry Pi Imager (рекомендуется) или
balenaEtcher
, чтобы записать образ на microSD-карту. - Активируйте 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
— для России (важно для соответствия радиочастотным нормам). - В папке
- Вставьте карту в Raspberry Pi, подключите питание.
Шаг 2: Подключение к Raspberry Pi по SSH
- Узнайте IP-адрес Raspberry Pi в сети:
- Проверьте на роутере список подключённых устройств.
- Или используйте
nmap
:1
nmap -sn 192.168.1.0/24
(замените на вашу подсеть)
- Подключитесь по SSH:
1
ssh IP_АДРЕС
Пользователь по умолчанию:
pi
Пароль по умолчанию:raspberry
- (Опционально) Смените пароль:
1
passwd
- Обновите систему:
1
sudo apt update && sudo apt upgrade -y
Шаг 3: Подключение USB-веб-камеры
-
Подключите веб-камеру к Raspberry Pi через.
- Проверьте, определилась ли камера:
1
ls /dev/video*
Должно появиться:
/dev/video0
(или больше, если камер несколько). - Установите утилиту для проверки:
1
sudo apt install v4l-utils -y
- Проверьте параметры камеры:
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
http://IP_АДРЕС_ПИ:8080
- Вы увидите:
Шаг 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 , права на скрипт |
Полезные ссылки
- Официальный репозиторий: https://github.com/jacksonliam/mjpg-streamer
- UVC-камеры: https://www.ideasonboard.org/uvc/
- Документация по V4L2: https://linuxtv.org/docs/
Заключение
Теперь у вас есть работающая видеокамера на базе Raspberry Pi Zero W, доступная через веб-браузер. Вы можете использовать её как:
- Домашнюю камеру наблюдения
- Дверной видеоглазок
- Мониторинг питомца
- Умный дом (интеграция с Home Assistant)
Если нужно — могу помочь с интеграцией в Home Assistant, Telegram-бота с видео, или HTTPS-доступом из интернета (через ngrok или Tailscale).