Всем нам хорошо знакома техника съемки медленных процессов, которая называется TimeLapse. Суть её заключается в том, чтобы делать фотографию через заданные промежутки времени, а затем собрать из множества фотографий видеоролик. Например, снимая фото раз в 6 секунд и склеив затем в видео с частотой кадров 25fps, мы ускорим время в 150 раз. Облака будут плыть по небу и кораблики по воде со скоростью реактивного самолёта, цветы — распускаться на глазах и т.д. Из статьи вы узнаете некоторые детали того, как можно снять TimeLapse вида из окна длиной в год на обычный телефон с Android.
Исходные данные:
- Компьютер с жёстким диском объемом 2Тб под управлением Windows (разумеется, то же самое можно делать и в Linux, заменив планировщик на cron, а robocopy на rsync)
- Телефон с Android любой версии, карточкой памяти любого объема и правами Root
- Wi-Fi точка доступа
Съемка организовывается следующим образом:
- Телефон фиксируем на окне любыми подручными средствами типа тисков, подключаем к электричеству wi-fi, в настройках устанавливаем статический ip-адрес (или создаём резервацию dhcp на точке доступа), например, 192.168.0.123
- Устанавливаем на телефон программу Samba Filesharing и любую программу, способную снимать фотографии через заданные интервалы времени. Я использую купленную когда-то за $2 FastMotion Tamelapse, которую автор теперь почему-то удалил из Google Play. Есть ещё Lapse It и десятки других. Запускаем съемку, выбрав частоту, разрешение и качество снимков. В моём случае используются параметры «5 сек, 5 мегапикселей и jpeg 80%»
- На компьютере заходим на \192.168.0.123, находим директорию, в которую записываются снимки, в моём случае это sdcardDCIMFastMotionвремя_начала_съемки, создаём bat-файл с текстом
robocopy <\IP_телефонадиректория_с_фото> <директория на компьютере> /MOV
Пример:
robocopy \192.168.0.123sdcardDCIMFastMotion2012-06-10_23-31-57 F:2013-06-10_23-31-57 /MOV
- Добавляем указанный файл в планировщик Windows для выполнения каждые 5 минут
- Ждём несколько часов/дней/месяцев
Захотев собрать видеоролик из любого подмножества фотографий:
- Переименовываем их массовым переименованием (Ctrl+M в Total Commander-e или бесплатном Unreal Commander-е), называя их [C].jpg ([C] — это счётчик из 6 цифр, начинающийся с 0)
- Скачиваем ffmpeg
- Выполняем
ffmpeg -r 25 -i %06d.jpg -s 1280x720 -vcodec libx264 -vpre hq -crf 25 output.mp4
-r — частота кадров; -i — формат названия файлов; -s — разрешение видео; -vpre — пресет настроек кодека; -crf — уровень качества (от 18 до 28, меньше число — больше качество); разумеется, настройки можно подобрать и другие, например, использовать формат webm и кодек vp8 - Смотрим результат, монтируем видеоредакторами, делимся на YouTube :-)
Съёмка идёт почти непрерывно с сентября 2012 с несколькими перерывами по разным аварийным причинам. Более 3 млн фотографий занимают 1.5Тб.
Ранее вместо Samba Filesharing использовались разные FTP-серверы со стороны телефона, а на компьютере запускалась в консольном виде Filezilla, но этот способ был сложнее и менее надёжным, т.к. раз в несколько недель обязательно падал FTP-сервер (разные — «FTP Server», «SwiFtp», «MyMobiler»).
В солнечные дни в кадр попадало отражение белого подоконника в окне, помогла установка самодельной картонной бленды, благодаря которой телефон оказался изолированным от подоконника.
С наступлением весны фотоаппарат HTC Desire HD стал случайным образом выключаться через два часа — несколько дней после старта съемки (в т.ч. и в пасмурную погоду, поэтому я до конца не верил в перегрев, подозревая аккумулятор, блоки питания, профиль управления частотой процессора). Но причиной всё-таки оказался именно перегрев :-) В бленде было вырезано окошко 8х8 сантиметров и установлен компьютерный вентилятор с блоком питания 6В, выключения прекратились.
Один день представляет из себя примерно 13200 фотографий (т.е. фактически съемку в полном разрешении с учётом технических временных затрат удаётся вести только с частотой 6.54 сек) и занимает от 4 гигабайт короткими зимними днями и до 12Гб в солнечный июньский день при качестве 80%.
Мне ещё предстоит найти хороший софт для пакетной фильтрации миллионов фотографий от шума и выбирать из многих дней наиболее визуально привлекательные своими закатами и штормами. Фотошоп с встроенным фильтром шума не способен использовать четырёхядерный Core i7 больше, чем на 12.5-25%, хотя результат фильтрации получается визуально неплохим. На Athlon64 X2 4850e (2x2.5Ghz) фильтрация одного дня съемки от шума занимала примерно 48 часов, на Core i7 (4x3.8Ghz) — около 9 часов.
Автор: VanyaKokorev