Главная страница » Raspberry Pi » Raspberry Pi камера: стриминг видео и таймлапс своими руками
Raspberry Pi камера: стриминг видео и таймлапс своими руками
Raspberry Pi

Raspberry Pi камера: стриминг видео и таймлапс своими руками

31.03.2026 172
Raspberry Pi камера: стриминг видео и таймлапс своими руками

Пошаговое руководство по настройке видеопотока и созданию таймлапсов на Raspberry Pi. MJPG-Streamer, RTSP, ffmpeg. Интеграция с умным домом.

Приветствую всех любителей DIY и домашней автоматизации! Сегодня мы займёмся одним из самых творческих и наглядных применений нашего малинового одноплатника — работой с камерой. Многие из нас покупают камерный модуль для Raspberry Pi, пару раз поиграются с raspistill и raspivid, а потом он пылится на полке. А зря! Из этой недорогой железяки можно сделать полноценную систему видеонаблюдения с трансляцией в реальном времени или создать потрясающие таймлапс-ролики строительства, роста растений или изменения погоды за окном.

В этой статье я на собственном опыте расскажу, как настроить стабильный видеопоток с вашей камеры в локальную сеть и в интернет, а также как автоматизировать процесс создания таймлапсов. Всё это — без покупки дорогого оборудования, используя лишь возможности Raspberry Pi и пару проверенных программ с открытым исходным кодом.

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

  • Raspberry Pi любой модели (от 3B и новее рекомендуется для стриминга). У меня в примерах будет Raspberry Pi 4 с 2 ГБ ОЗУ.
  • Камера Raspberry Pi (официальная или совместимая, подключённая через CSI-разъём). Для некоторых задач подойдёт и USB-веб-камера, но сегодня фокус на родном модуле.
  • Карта microSD с актуальной Raspberry Pi OS (ранее Raspbian). О выборе ОС для подобных проектов я подробно писал в статье Raspberry Pi OS vs Ubuntu vs DietPi: Выбор ОС для домашнего сервера.
  • Блок питания достаточной мощности.
  • Сетевое подключение (LAN или Wi-Fi).

Первым делом убедимся, что камера подключена и включена в настройках. Подключаемся к нашему Raspberry Pi по SSH (мой любимый способ) или работаем прямо с монитора.

# Включаем интерфейс камеры, если это не сделано ранее
sudo raspi-config

В меню выбираем: Interface Options -> Legacy Camera (или Camera на старых версиях) -> Yes -> Finish -> соглашаемся на перезагрузку.

После перезагрузки проверяем, что камера определяется:

# Делаем пробный снимок на 5 секунд
libcamera-still -o test_shot.jpg --timeout 5000
# Или, если используете старую версию ОС без libcamera:
# raspistill -o test_shot.jpg

Если в текущей директории появился файл test_shot.jpg — отлично, камера работает! Если нет — проверяйте физическое подключение шлейфа (контакты должны быть обращены к разъёму HDMI) и настройки в raspi-config.


Часть 1: Стриминг видео с камеры в реальном времени

Наша цель — сделать так, чтобы видео с камеры было доступно по IP-адресу вашего Raspberry Pi в локальной сети, а при желании — и извне.

Вариант 1: Простой и быстрый стрим с VLC (для просмотра на ПК)

Этот способ идеален для быстрой проверки или временного стрима. Мы будем использовать raspivid (или libcamera-vid) для захвата видео и трансляции его через стандартный RTP/RTSP поток.

# Устанавливаем VLC (если его нет) и утилиты для работы с сетью
sudo apt update
sudo apt install vlc -y

# Запускаем трансляцию с камеры в сеть
libcamera-vid -t 0 --width 1280 --height 720 --framerate 25 --codec h264 --inline -o - | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/stream}' :demux=h264

Разберём команду: * libcamera-vid -t 0 – захват видео на неограниченное время. * --width 1280 --height 720 – разрешение потока (720p). Можно уменьшить до 640x480 для экономии ресурсов. * --framerate 25 – частота кадров. * --codec h264 --inline -o - – кодирование в H.264 и вывод в стандартный поток (stdout). * cvlc ... – конвейер (pipe |) передаёт видеопоток в VLC. * --sout '#rtp{sdp=rtsp://:8554/stream}' – VLC перенаправляет (transcodes) поток в RTSP-сервер на порту 8554.

Проверка результата: На любом компьютере в вашей локальной сети откройте VLC Player. Нажмите Media -> Open Network Stream и введите адрес:

rtsp://IP_ВАШЕГО_RASPBERRY_PI:8554/stream

Например, rtsp://192.168.1.100:8554/stream. Должно появиться живое видео с задержкой 1-2 секунды.

Типичная ошибка: "VLC can't open the stream". Чаще всего это означает, что брандмауэр на Raspberry Pi блокирует порт 8554. Откройте его:

sudo ufw allow 8554/tcp
# Или, если ufw не установлен, используйте iptables (менее безопасно)
# sudo iptables -A INPUT -p tcp --dport 8554 -j ACCEPT

Вариант 2: Мощный и гибкий стрим с MJPG-Streamer для браузера

Если вы хотите смотреть поток в обычном браузере без установки VLC, то MJPG-Streamer — ваш выбор. Он создаёт простую веб-страницу с видео.

# Устанавливаем зависимости и сам MJPG-Streamer
sudo apt update
sudo apt install cmake libjpeg-dev build-essential git -y
cd ~
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make
sudo make install

Теперь создадим простой скрипт для запуска, чтобы не запоминать длинную команду.

nano ~/start_stream.sh

Вставляем в файл следующее содержимое:

#!/bin/bash
# Скрипт запуска MJPG-Streamer
/usr/local/bin/mjpg_streamer -i "input_raspicam.so -x 1280 -y 720 -fps 15 -quality 50" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
  • -x 1280 -y 720 – разрешение.
  • -fps 15 – частота кадров. 15-20 FPS достаточно для наблюдения.
  • -quality 50 – качество JPEG (1-100). Меньше качество = меньше нагрузка на сеть и CPU.
  • -p 8080 – порт, на котором будет работать веб-интерфейс.

Делаем скрипт исполняемым и запускаем:

chmod +x ~/start_stream.sh
~/start_stream.sh

Проверка результата: Откройте браузер и перейдите по адресу http://IP_ВАШЕГО_RASPBERRY_PI:8080. Вы увидите веб-страницу с видео и элементами управления. Для просмотра чистого потока (например, для интеграции в Home Assistant) используйте URL: http://IP_ВАШЕГО_RASPBERRY_PI:8080/?action=stream.

Чтобы сервис запускался автоматически после перезагрузки, создадим systemd-юнит:

sudo nano /etc/systemd/system/mjpg-streamer.service
[Unit]
Description=MJPG-Streamer Service
After=network.target

[Service]
ExecStart=/home/pi/start_stream.sh
User=pi
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Активируем и запускаем сервис:

sudo systemctl daemon-reload
sudo systemctl enable mjpg-streamer.service
sudo systemctl start mjpg-streamer.service
# Проверяем статус
sudo systemctl status mjpg-streamer.service

Часть 2: Создание таймлапс-видео

Таймлапс — это «сжатие времени». Мы будем делать снимки с заданным интервалом, а потом склеим их в видео.

Шаг 1: Автоматический захват кадров

Создадим директорию для хранения снимков и напишем простой скрипт.

mkdir -p ~/timelapse_images
cd ~
nano capture_timelapse.sh

Вставляем скрипт:

#!/bin/bash
# Скрипт для захвата кадров таймлапса

INTERVAL=10          # Интервал между снимками в секундах (например, 10)
DURATION=36000       # Общая длительность съёмки в секундах (например, 10 часов = 36000)
IMAGE_DIR="/home/pi/timelapse_images"
PREFIX="tl_"

# Рассчитываем количество кадров
COUNT=$((DURATION / INTERVAL))

echo "Начинаем съёмку таймлапса. Всего кадров: $COUNT, интервал: ${INTERVAL}с."

for ((i=1; i<=COUNT; i++))
do
    TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
    # Делаем снимок с помощью libcamera-still
    libcamera-still -o "${IMAGE_DIR}/${PREFIX}${TIMESTAMP}.jpg" --width 1920 --height 1080 --quality 90
    # Или с помощью raspistill для старых систем:
    # raspistill -o "${IMAGE_DIR}/${PREFIX}${TIMESTAMP}.jpg" -w 1920 -h 1080 -q 90

    echo "Снят кадр $i из $COUNT: ${PREFIX}${TIMESTAMP}.jpg"
    sleep $INTERVAL
done

echo "Съёмка завершена!"

Делаем скрипт исполняемым: chmod +x capture_timelapse.sh.

Запуск вручную: ./capture_timelapse.sh. Скрипт будет работать в фоне, делая снимки каждые 10 секунд в течение 10 часов. Вы можете прервать его в любой момент комбинацией Ctrl+C.

Совет: Для очень длительных таймлапсов (сутки и более) лучше настроить скрипт как сервис или использовать cron. Например, чтобы делать снимок каждые 5 минут с 8 утра до 8 вечера, добавьте в crontab -e строку:

*/5 8-20 * * * libcamera-still -o "/home/pi/timelapse_images/tl_$(date +%Y%m%d_%H%M%S).jpg" --width 1920 --height 1080

Шаг 2: Склейка кадров в видеофайл

Когда у нас есть папка с сотнями или тысячами изображений, превратим их в плавное видео с помощью ffmpeg.

# Устанавливаем ffmpeg
sudo apt update
sudo apt install ffmpeg -y

# Переходим в папку с изображениями
cd ~/timelapse_images

# Команда для склейки. Все файлы, начинающиеся на 'tl_', будут использованы в алфавитном порядке (он же по времени).
ffmpeg -framerate 25 -pattern_type glob -i 'tl_*.jpg' -c:v libx264 -pix_fmt yuv420p -crf 23 -preset medium ../timelapse_output.mp4

Разберём ключевые параметры ffmpeg: * -framerate 25 – частота кадров выходного видео. 25 кадров в секунду — стандарт. * -pattern_type glob -i 'tl_*.jpg' – использование шаблона для выбора всех jpg-файлов. * -c:v libx264 – кодирование в H.264. * -pix_fmt yuv420p – формат пикселей, совместимый со всеми плеерами. * -crf 23 – качество (Constant Rate Factor). Меньше = лучше качество, но больше размер файла. Диапазон 18-28. * -preset medium – баланс между скоростью кодирования и степенью сжатия.

Типичная ошибка: [image2 @ 0x...] Could not find codec parameters for stream 0. Это означает, что ffmpeg не может прочитать файлы. Убедитесь, что в папке есть файлы .jpg и что команда запущена из правильной директории. Также проверьте, что имена файлов в шаблоне совпадают.

Проверка результата: После завершения кодирования (это может занять несколько минут) в вашей домашней директории (/home/pi/) появится файл timelapse_output.mp4. Скачайте его через SCP или SFTP на свой компьютер и наслаждайтесь результатом!


Часть 3: Продвинутая интеграция и идеи

Настроив базовый функционал, можно пойти дальше.

  • Интеграция с Home Assistant: Поток с MJPG-Streamer легко добавить в HA как камеру. В configuration.yaml добавьте: ```yaml camera:

    • platform: mjpeg mjpeg_url: http://IP_RASPBERRY_PI:8080/?action=stream name: Raspberry Pi Camera ``` После перезагрузки HA вы увидите картинку с камеры в интерфейсе. Это может стать основой для DIY умного звонка или системы наблюдения.
  • Доступ к стриму из интернета: Никогда не открывайте порты камеры (8080, 8554) напрямую в интернет! Это огромная дыра в безопасности. Используйте VPN, например, WireGuard на вашем одноплатнике, для безопасного доступа к домашней сети. Подключившись к VPN, вы сможете смотреть стрим так, как будто находитесь дома.

  • Таймлапс для умной теплицы: Установите Raspberry Pi с камерой в теплице, чтобы в автоматическом режиме снимать рост растений. Объедините это с данными датчиков температуры и влажности, как в проекте Умная теплица на ESP32 и Raspberry Pi, и вы получите полную картину микроклимата.

Заключение

Как видите, камера Raspberry Pi — это не просто игрушка для селфи. Это мощный инструмент для творчества и автоматизации. От простого стрима для наблюдения за домашними питомцами до создания профессиональных таймлапс-роликов — всё это доступно с минимальными вложениями.

Самое главное — начать экспериментировать. Подберите оптимальное разрешение и частоту кадров под свою задачу, поиграйтесь с углами и освещением. И не забывайте про безопаность: ваш домашний видеопоток должен оставаться только вашим.

Удачи в творчестве! Делитесь своими таймлапсами и находками в комментариях.

Понравилась статья?

Поставьте лайк и сохраните полезный материал в закладки.

Комментарии (0)
Добавить комментарий
Прокомментировать
Кликните на изображение чтобы обновить код, если он неразборчив
Headless Raspberry Pi: Настройка без монитора через SSH — Полное руководство
Raspberry Pi
31.03.2026
Headless Raspberry Pi: Настройка без монитора через SSH — Полное руководство
Пошаговое руководство по настройке Raspberry Pi без монитора и клавиатуры. Узнайте, как включить SSH, подключиться к сети и управлять Pi удалённо для DIY-проектов и
Pi-hole на Raspberry Pi: Как я избавил всю домашнюю сеть от рекламы раз и навсегда
Raspberry Pi
31.03.2026
Pi-hole на Raspberry Pi: Как я избавил всю домашнюю сеть от рекламы раз и навсегда
Пошаговая инструкция по установке Pi-hole на Raspberry Pi. Настройте сетевой фильтр рекламы и трекеров для всего умного дома. Проверка, типичные ошибки, личный опыт.
Raspberry Pi как домашний сервер: что на нём можно запустить в 2024
Raspberry Pi
31.03.2026
Raspberry Pi как домашний сервер: что на нём можно запустить в 2024
Подробное руководство по настройке Raspberry Pi как домашнего сервера в 2024. Установите Pi-hole, Home Assistant, Nextcloud, VPN и другие сервисы через Docker.
Raspberry Pi медиасервер Jellyfin: домашний Netflix своими руками
Raspberry Pi
31.03.2026
Raspberry Pi медиасервер Jellyfin: домашний Netflix своими руками
Пошаговая инструкция: как установить и настроить медиасервер Jellyfin на Raspberry Pi. Создайте приватный домашний кинотеатр для фильмов и сериалов своими руками.
Raspberry Pi NAS: Собираем домашнее сетевое хранилище на OpenMediaVault
Raspberry Pi
31.03.2026
Raspberry Pi NAS: Собираем домашнее сетевое хранилище на OpenMediaVault
Пошаговое руководство по сборке тихого и энергоэффективного NAS на Raspberry Pi с OpenMediaVault. Настройка дисков, общих папок SMB и проверка скорости за 1 час.
Продлеваем жизнь SD-карте в Raspberry Pi: полное руководство по выживанию
Raspberry Pi
01.09.2026
Продлеваем жизнь SD-карте в Raspberry Pi: полное руководство по выживанию
Узнайте, как продлить жизнь SD-карте в Raspberry Pi: отключение журнала, перенос логов в RAM, настройка свопа и Docker. Практические советы и команды.

Войдите в аккаунт, чтобы пользоваться закладками, сообщениями и другими возможностями сайта.