Гид по технологиям

Тайм‑лапс на Raspberry Pi — DSLR и USB‑вебкамера

7 min read Raspberry Pi Обновлено 20 Dec 2025
Тайм‑лапс на Raspberry Pi: DSLR и USB‑вебкамера
Тайм‑лапс на Raspberry Pi: DSLR и USB‑вебкамера

Небо с проходящими облаками — пример сцены для тайм‑лапса

Введение

Тайм‑лапс позволяет увидеть процессы, которые в реальном времени кажутся медленными: движение облаков, рост растения или изменение света в течение дня. Профессиональные моторизированные системы (например, вращающаяся голова типа Genie) дают дополнительные возможности, но стоят дорого. На практике базовый тайм‑лапс без движения можно сделать с помощью Raspberry Pi, DSLR‑камеры или обычной USB‑вебкамеры.

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

Важно: короткие определения

  • Raspberry Pi — одноплатный компьютер для DIY-проектов.
  • gphoto2 — CLI‑утилита для управления совместимыми DSLR через USB.
  • fswebcam — простая утилита для съёмки с USB‑вебкамер.

Что нужно заранее

  • Raspberry Pi с установленной Raspbian / Raspberry Pi OS и доступом по SSH.
  • USB‑кабель для подключения DSLR или совместимая USB‑вебкамера.
  • Достаточно места на карте памяти или внешний диск (множество JPG быстро занимает объём).
  • Базовые навыки работы в терминале.

Подготовка: подключение и доступ

Если вы не уверены в IP‑адресе Pi, зайдите в веб‑интерфейс роутера и посмотрите список подключённых устройств. Вы также можете подключить монитор и клавиатуру к самой плате.

Список подключённых устройств в интерфейсе роутера

Разрабатывать мы будем через SSH и, при необходимости, переносить файлы через SFTP на рабочую станцию.

DSLR: управление камерой через gphoto2

Начнём с DSLR. Подключите камеру к Raspberry Pi по USB и включите её в режиме, который позволяет удалённую съёмку (на некоторых моделях это требует определённого положения переключателя).

Установите необходимые пакеты:

sudo apt-get update
sudo apt-get install gphoto2 imagemagick

gphoto2 — это утилита командной строки для управления множеством DSLR. Она поддерживает захват изображений, настройку параметров и режимов. Полный список поддерживаемых камер можно посмотреть в документации gphoto2.

Проверка базового захвата — минимальная команда для тестирования:

gphoto2 --capture-image-and-download

Эта команда сделает снимок и скачает файл на Raspberry Pi. Если вы хотите оставить файл на камере:

gphoto2 --capture-image

Совет: при высоком разрешении 8 МБ на снимок разумно хранить их на карте памяти камеры и переносить после съёмки.

Настройка места сохранения (важно)

По умолчанию снимки иногда сохраняются в RAM камеры (SD‑RAM), а не на физическую карту. Убедитесь, что целевой накопитель установлен правильно:

gphoto2 --get-config /main/settings/capturetarget

Посмотрите список вариантов, и затем установите тот, который соответствует карте памяти (замените 1 на нужное значение):

gphoto2 --set-config /main/settings/capturetarget=1

Режим тайм‑лапс через gphoto2

gphoto2 поддерживает захват с заданным интервалом и количеством кадров. Пример: 1440 кадров с интервалом 30 секунд (примерно 1 минута видео при 24 FPS):

gphoto2 --capture-image -F 1440 -I 30

Пояснение: -F — число кадров, -I — интервал в секундах между кадрами.

Небольшая особенность: после завершения команды камера на некоторых моделях выключается или перестаёт отвечать, и требуется вручную переключить питание. Это не критично в полевых условиях, но раздражает при тестах.

Команда gphoto2 выполняется в терминале Raspberry Pi

Создание видео из кадров (DSLR)

После съёмки перенесите снимки на компьютер для окончательной сборки видео. На macOS удобный путь — через терминал с установленными Xcode Command Line Tools, Homebrew и MPlayer / mencoder.

Установите инструменты:

  1. Установите Xcode из App Store, затем в Xcode → Preferences → Downloads включите Command Line Tools.

Установка инструментов командной строки в Xcode

  1. Установите Homebrew и необходимые пакеты (выполняйте команды по очереди):
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
brew doctor
brew install mplayer

Установка Homebrew и компонентов через терминал macOS

Далее создайте список файлов и соберите видео с помощью mencoder:

cd <папка с фото>
ls *.jpg > list.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt

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

Использование USB‑вебкамеры

Если у вас нет DSLR, можно использовать обычную USB‑вебкамеру (например, PS3 Eye). Она часто работает «из коробки» на Raspberry Pi, но поддержка камер может быть разной. Иногда нужен питательный USB‑хаб.

Проверьте, что система обнаружила устройство:

ls -l /dev/video*

Обычно появится /dev/video0.

Устройство /dev/video0 показано в списке устройств

Установите fswebcam и сделайте тестовый снимок:

sudo apt-get install fswebcam
fswebcam -d /dev/video0 -r 640x480 test.jpeg

Удалите тестовый файл, если нужно:

rm test.jpg

Скрипт тайм‑лапса для USB‑вебкамеры

Создадим папку и скрипт:

mkdir timelapse
nano runtimelapse

Вставьте следующий скрипт в файл runtimelapse:

#!/bin/bash
# Timelapse controller for USB webcam

DIR=/home/pi/timelapse

x=1
while [ $x -le 1440 ]; do

filename=$(date -u +'%d%m%Y_%H%M-%S').jpg

fswebcam -d /dev/video0 -r 640x480 $DIR/$filename

x=$(( $x + 1 ))

sleep 10

done

Примечания:

  • Для теста интервал установлен 10 сек. При реальной съёмке чаще ставят 60 сек или больше.
  • Измените строку while, чтобы задать желаемое количество кадров:
while [ $x -le 1440 ]; do

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

chmod 755 runtimelapse
./runtimelapse

USB веб‑камера подключена и работает на Raspberry Pi

Сборка видео на Raspberry Pi (вебкамера)

Если вы хотите собрать видео прямо на Pi, выполните:

cd timelapse
ls *.jpg > list.txt
sudo apt-get install mencoder
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt

Если выходной файл 0 KB, это чаще всего означает недостаток места во временной папке. Решение — очистка временных файлов, расширение корневого раздела или перенос промежуточных файлов на внешний диск.

Передача файлов по SFTP с Raspberry Pi

Советы по качеству съёмки

  • Интервал между кадрами: для медленных процессов (рост растения) — минуты или часы; для облаков — 5–30 секунд.
  • Баланс экспозиции: если камера в автоматическом режиме изменяет экспозицию, возможны мерцания в финальном видео. Для стабильного результата используйте фиксированные настройки (ручная выдержка/ISO/диафрагма) или применяйте программные методы коррекции при пост‑обработке.
  • Питание: при длительной съёмке используйте внешний блок питания или заменяемые батареи.
  • Хранение: рассчитывайте объём — тысячи JPG занимают гигабайты. Планируйте диск или перенос каждые несколько часов.

Устранение проблем и типовые ошибки

  • Камера не обнаружена: проверьте USB‑кабель и питание, перезагрузите Pi, убедитесь, что камера поддерживается gphoto2.
  • Файл 0 KB на output при сборке видео: проверьте свободное место на разделе /tmp и корневом разделе.
  • Камера «зависает» после серии снимков: попробуйте вручную циклировать питание камеры или протестируйте другие версии gphoto2/камерной прошивки.

Когда метод не подойдёт (контрпримеры)

  • Нужна моторизация/панорамирование: если вам нужно вращение камеры (pan/tilt) или слайдер, этот простой контроллер без внешних моторных приводов не подойдёт.
  • Низкая поддержка камеры: некоторые камеры не поддерживают удалённую съёмку через USB.
  • Очень высокое разрешение с тысячами кадров: Raspberry Pi может не справиться с обработкой и сжатием — лучше переносить данные на мощный ПК.

Альтернативные подходы

  • Raspberry Pi Camera Module: лёгкая интеграция, поддержка libcamera, меньший энергопотребление.
  • Аппаратный интервалометр: отдельное устройство для DSLR, которое не зависит от Pi.
  • Использование ffmpeg для сборки видео (вместо mencoder). Пример:
ffmpeg -framerate 24 -pattern_type glob -i "*.jpg" -c:v libx264 -pix_fmt yuv420p timelapse.mp4
  • Применение специализированных сервисов/облачных решений для хранения и постобработки снимков.

Мини‑методология: быстрый чек‑лист перед съёмкой

  1. Проверьте питание камеры и Pi.
  2. Убедитесь, что на карте памяти достаточно места.
  3. Установите целевой путь сохранения в gphoto2.
  4. Сделайте несколько тестовых снимков.
  5. Запустите скрипт и наблюдайте первые 5–10 кадров.
  6. После съёмки перенесите данные и соберите видео.

Ролевые чек‑листы

Для фотографа:

  • Выбрать композицию и интервал.
  • Настроить экспозицию/баланс белого.
  • Проверить фокус и кадр.

Для инженера/оператора Pi:

  • Установить gphoto2/fswebcam.
  • Подготовить скрипт и права доступа.
  • Организовать логирование ошибок и мониторинг диска.

Критерии приёмки

  • Все кадры присутствуют и отсортированы по времени.
  • Видео собирается без пропусков кадров и без значительных мерцаний.
  • Время съёмки соответствует заданному интервалу и числу кадров.
  • Файлы целы (неповреждены) и хранятся в указанной папке.

Короткий план запуска (SOP)

  1. Подключить камеру/вебкамеру.
  2. Проверить /dev/video0 или gphoto2 –auto-detect.
  3. Настроить capturetarget (для DSLR).
  4. Подготовить и оттестировать скрипт захвата.
  5. Запустить съёмку.
  6. Перенести файлы и собрать видео.

Примеры тестов / критерии приёмки

  • Тест 1: 60 кадров с интервалом 10 сек — скрипт завершился без ошибок, все 60 файлов присутствуют.
  • Тест 2: 360 кадров, камера на батарее — проверить, хватит ли заряда или произойдёт выключение.
  • Тест 3: Сборка видео через ffmpeg/mencoder — проверить финальный файл на отсутствие артефактов.

Короткая заметка для публикации / анонса

Попробуйте собрать тайм‑лапс на Raspberry Pi за выходные: два часа настройки и вы получите завораживающее видео. Поделитесь результатом и интервалами — это помогает другим выбрать оптимальные параметры.

1‑строчный глоссарий

  • Интервал — задержка между кадрами;
  • Кадр (frame) — отдельное изображение;
  • FPS — кадры в секунду итогового видео.

Заключение

Тайм‑лапс на Raspberry Pi — недорогой и надёжный способ наблюдать длительные процессы. DSLR даёт лучшее качество, а USB‑вебкамера — простоту и доступность. Планируйте питание и хранение, тестируйте настройки, и вы получите гладкое видео без мерцаний.

Важно: если вы столкнулись с нестандартными проблемами, опишите модель камеры и версии gphoto2/OS — это упростит поиск решения.

Ресурсы и ссылки

  • gphoto2: документация и список поддерживаемых камер.
  • fswebcam: мануал по установке и параметрам.
  • ffmpeg/mencoder: утилиты для кодирования видео.

Краткий итог

  • Можно сделать тайм‑лапс на Raspberry Pi с DSLR или USB‑вебкамерой.
  • Используйте gphoto2 для DSLR и fswebcam для USB‑камер.
  • Старайтесь фиксировать экспозицию и контролировать питание.

Поделитесь своими роликами и настройками — это поможет всем лучше понять практические нюансы съёмки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Kubernetes: хуки жизненного цикла контейнера
Kubernetes

Kubernetes: хуки жизненного цикла контейнера

Восстановление удалённых публикаций в Instagram
Социальные сети

Восстановление удалённых публикаций в Instagram

Как установить MongoDB на локальном ПК
Базы данных

Как установить MongoDB на локальном ПК

Как перенести музыку и плейлисты между аккаунтами Spotify
Музыка

Как перенести музыку и плейлисты между аккаунтами Spotify

Очистка истории буфера обмена в Windows 10
Windows

Очистка истории буфера обмена в Windows 10

Как записать Blu‑Ray на диск в Windows и macOS
Руководство

Как записать Blu‑Ray на диск в Windows и macOS