Time-lapse съемка с помощью Raspberry Pi и камеры

03 января 2015

Timelapse (таймлапс, замедленная киносъёмка)  это видео, созданное из серии фотографий, сделанных с определенным интервалом.


Данная техника используется уже давно и может применяться, например, для съемки долгопротекающих процессов, но широкое развитие получило благодаря тому, что с данной техникой получаются поистине шикарные видео. Например, посмотрите этот видеоролик про альпинистов на Эвересте:

Может показаться, что для съемок подобных видео необходимо дорогостоящее оборудование, но по большому счету подобного эффекта можно добиться используя только Raspberry Pi и модуль камеры.


Для этого нам понадобится:

  1. Raspberry Pi (любая модель с портом камеры CSI)
  2. Камера Raspberry Pi


Подключение камеры

Подключите камеру к Raspberry Pi. В моделях B/B+ порт CSI находится меду HDMI и Ethernet портом. Немного приподнимите зажим и вставьте туда шлейф камеры. При этом открытые контакты камеры должны смотреть в сторону HDMI порта, как показано на изображении:

В интернете очень много информации о том, как подключить камеру, например, информация на официальном сайте http://www.raspberrypi.org/documentation/usage/camera/README.md

Конфигурация камеры

Для того, чтобы камера функционировала, необходимо включить поддержку в операционной системе. В данной статье рассматривается настройка камеры в Raspian, для других дистрибутивов необходимо обратиться к соответствующей документации.

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

sudo raspi-config

Данная команда вызовет окно конфигурации, в котором надо активировать камеру в пункте Enable camera.


После того, как вы активировали камеру, не забудьте выбрать Finish. Система будет перезагружена.

После перезагрузки неплохо бы проверить, что наша камера действительно работает. Наберите в терминале:

raspistill -o cam.jpg

Через короткое время команда должна выполнится и в каталоге, в котором вы запускали эту команду, должен будет появится файл с именем cam.jpg.

Если изображение перевернуто, то не спешите придумывать, как перевернуть вашу камеру. У приложения raspistill есть ряд параметров, которые могут отразить изображение по горизонтали\вертикали.

Например, эта команда отразит изображение по вертикали (vertical flip)

raspistill -vf -o cam.jpg
А эта по горизонтали (horizontal flip):

raspistill -hf -o cam.jpg

Также эти два параметра можно использовать вместе, просто написав их друг за другом.

Процесс съемки

Для начала необходимо определиться, что будет предметом съемки. С целью потренироваться можно снять свой вид из окна. Особенно если за окном плывут облака, либо скоро будет рассвет\заказ. В общем, придется напрячь фантазию.

Зафиксируйте камеру таким образом, чтобы обеспечить ей бездвижное состояние на долгое время. Убедитесь, что Raspberry Pi не будет обесточен в процессе съемки, так как это приведет к тому, что съемка остановится.

Создадим каталог, в котором будем хранить все наши файлы, связанные со съемкой. В терминале набираем:

mkdir timelapse

Данная команда создаст каталог с именем "timelapse" в том каталоге, в котором мы сейчас находимся.

Позаботьтесь заранее, в какой каталог вы хотели бы сохранить ваши фотографии. Необходимо учесть тот факт, что чем больше фотографий, тем больше места им необходимо. Если вы сохраняете на SD карту, то убедитесь, что ее объема будет достаточно: одна фотография будет весить порядка 2.4MB. В моем случае я использовал внешний жесткий диск с настроенным доступом по SMB.

Далее создаем скрипт, для чего в терминале набираем:

cd timelapse
nano timelapse.sh

Первая команда переместит нас в только что созданный каталог, а вторая запустит редактор для создания файла с именем timelapse.sh

Скопируйте код ниже и вставьте его в окно редактора:

SAVEDIR=/media/Downloads/timelapse/stills

while [ true ]; do
filename=$(date -u +"%d%m%Y_%H-%M-%S").jpg
raspistill -o $SAVEDIR/$filename

sleep 4;
done;

Замените значение переменной SAVEDIR на путь, нужный вам. Также обратите внимание на строку sleep 4. Здесь вы можете задать свое время простоя между кадрами, но помните, что команда raspistill отрабатывает не мгновенно, поэтому время между кадрами будет всегда больше того времени, что вы задали в sleep.

Нажмите Ctrl+X, затем Y, затем Enter. Это сохранит файл.

Данный скрипт создает бесконечный цикл, в котором происходит снятие изображение с камеры и сохранение его в папку SAVEDIR с именем файла на основе даты. Это сделано для того, чтобы файлы в папке были отсортированы правильным образом.

Запустить наш скрипт можно командой

./timelapse.sh

Скрипт ничего не выводит на экран, результаты его работы можно видеть в папке: примерно каждые 5-6 секунд будет появляться новый файл.

Далее, в зависимости от того, что именно вы снимаете и какой длины хотите видеоролик, необходимо оставить Raspberry Pi в покое, пока не будет создано необходимое количество фотографий. Чтобы завершить съемку, нажмите Ctrl+C

Сборка видеоролика

Ваши фотографии готовы? Можно собирать видео!

Создать видео можно и на самом Raspberry Pi, но в силу ограниченности ресурсов рекомендую переместить все файлы на компьютер, который, как правило, гораздо мощнее малинки.

Существует огромное количество программ, способных собрать из коллекции фотографий видео, как платных, так и бесплатных. В этой статье будет описан процесс создания видео в программе Киностудия Windows Live, которая поставляется вместе с Windows.

Запустите программу и нажмите на кнопку Добавить видео и фотографии

И добавьте все сделанные фотографии. Далее на вкладе Правка измените значение параметра "Длительность" на маленькое значение, например 0,06. Данный параметр отвечает за то, насколько быстро будут меняться фотографии.

Все, ролик готов! Вы можете добавить музыкальное сопровождение и прочие эффекты. После завершения сохраняйте ваш фильм и наслаждайтесь проделанной работой.

Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: