Как снять TimeLapse-видео длиной в год на Android-телефон

в 18:43, , рубрики: android, timelapse, Песочница, метки: ,

Всем нам хорошо знакома техника съемки медленных процессов, которая называется TimeLapse. Суть её заключается в том, чтобы делать фотографию через заданные промежутки времени, а затем собрать из множества фотографий видеоролик. Например, снимая фото раз в 6 секунд и склеив затем в видео с частотой кадров 25fps, мы ускорим время в 150 раз. Облака будут плыть по небу и кораблики по воде со скоростью реактивного самолёта, цветы — распускаться на глазах и т.д. Из статьи вы узнаете некоторые детали того, как можно снять TimeLapse вида из окна длиной в год на обычный телефон с Android.

Пример видео


Исходные данные:

  • Компьютер с жёстким диском объемом 2Тб под управлением Windows (разумеется, то же самое можно делать и в Linux, заменив планировщик на cron, а robocopy на rsync)
  • Телефон с Android любой версии, карточкой памяти любого объема и правами Root
  • Wi-Fi точка доступа

Съемка организовывается следующим образом:

  1. Телефон фиксируем на окне любыми подручными средствами типа тисков, подключаем к электричеству wi-fi, в настройках устанавливаем статический ip-адрес (или создаём резервацию dhcp на точке доступа), например, 192.168.0.123
  2. Устанавливаем на телефон программу Samba Filesharing и любую программу, способную снимать фотографии через заданные интервалы времени. Я использую купленную когда-то за $2 FastMotion Tamelapse, которую автор теперь почему-то удалил из Google Play. Есть ещё Lapse It и десятки других. Запускаем съемку, выбрав частоту, разрешение и качество снимков. В моём случае используются параметры «5 сек, 5 мегапикселей и jpeg 80%»
  3. На компьютере заходим на \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
  4. Добавляем указанный файл в планировщик Windows для выполнения каждые 5 минут
  5. Ждём несколько часов/дней/месяцев

Захотев собрать видеоролик из любого подмножества фотографий:

  1. Переименовываем их массовым переименованием (Ctrl+M в Total Commander-e или бесплатном Unreal Commander-е), называя их [C].jpg ([C] — это счётчик из 6 цифр, начинающийся с 0)
  2. Скачиваем ffmpeg
  3. Выполняем
    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
  4. Смотрим результат, монтируем видеоредакторами, делимся на 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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js