Склейка снимков в видеоролик с помощью ffmpeg (замедленная киносъёмка)


Дата: 31 марта 2011





Иногда серию снимков с камеры хочется превратить в видеоролик. Это важно, когда нет смысла снимать с высокой частотой кадров (типичная видеозапись идёт с частотой 24,30 или даже 60 кадров в секунду), а разумней лишь делать последовательные снимки через достаточно длинный (по сравнению со стандартной видеозаписью, допустим один кадр в 10 секунд) промежуток времени.
Многие камеры позволяют автоматически осуществлять такую съемку. Например, на зеркальных камерах Canon при подключении к компьютеру можно установить автоматическую съемку через заданный промежуток. В большинстве случаев при съемке необходим штатив, иначе на видео будет видно сильнейшее дрожание.
Возможно, Вы просто захотите сделать слайд-шоу из своих снимков в формате видеоролика.
Эта статья покажет вам, как серию снимков превратить в полноценный видеоролик, где каждый снимок будет использоваться подобно кадру в видеоролике.

Мы будет использовать программу ffmpeg. FFmpeg — это набор свободных библиотек для работы с аудио и видео.
Для начала Вам нужно убедиться в том, что на компьютере установлена эта программа и, при необходимости, установить её.
Для установки на Debian подобных системах выполните (от суперпользователя):
apt-get install ffmpeg


Далее Вам нужно создать папку в домашней директории и скопировать необходимые снимки в неё. Затем открываем терминал для дальнейшей работы.
Первым делом нужно перейти в папку со снимками:
cd имя_папки

Можно набрать команду ls, чтобы убедиться в том, что вы находитесь в нужной папке со снимками (команда ls выведет список файлов в папке). Не забывайте, что Linux чувствителен к регистру символов.
Далее выполняем в этой папке небольшой bash скрипт:
i=0; for f in *.jpg ; do mv "$f" $(printf "frame%04d.jpg" $i) ; i=$((i+1)); done

Этот скрипт переименует все снимки формата jpg в нужный вид frame#, где # — номер кадра.
Опять не забываем, что Linux чувствителен к регистру и если у вас камера сохраняет кадры в .JPG (с расширением в верхнем регистре), то обязательно следует это учесть в скрипте:
i=0; for f in *.JPG ; do mv "$f" $(printf "frame%04d.jpg" $i) ; i=$((i+1)); done

Теперь всё готово для финальной операции — создания видеоролика:
ffmpeg -f image2 -r 24 -i frame%04d.jpg -sameq -y -an -r 24 out.flv

Через некоторое время программа создаст в папке видеоролик с именем out.flv с частотой кадров 24fps и "родным" разрешением (как у снимков). Так что я рекомендую не применять большое разрешение при съемки изначальных кадров.
Если Вас не устраивает скорость смены кадров в видеозаписи, то нужно поэкспериментировать с параметром -r. Если вам нужно, чтобы видео проигрывалось медленнее, то нужно установить меньшее значение, чем 24 и наоборот.

Дополнительная информация о параметрах к ffmpeg
-f fmt — тип данных.
-r rate — частота кадров.
-i filename — входной файл(ы).
-sameq — использовать "родное" разрешение исходных кадров в видео.
-y — перезаписывать выходной файл.
-an — отключить аудио.

Комментарии:
Автор: Alex,   дата: 14 августа 2012   10:46:49
Интересненько :)
Автор: Максим,   дата: 28 декабря 2012   22:39:18
Спасибо!
Автор: Дмитрий,   дата: 22 апреля 2014   07:02:43
Огромное спасибо, как раз то, что мне было нужно! Коротко, понятно и по существу!




 
Добавить комментарий:
Имя: *
e-mail:
Комментарий: *
Введите число 52: *


Архив статей:
Май 2017
Март 2017
Апрель 2016
Март 2016
Октябрь 2013
Сентябрь 2013
Май 2013
Март 2013
Ноябрь 2012
Июль 2012
Июнь 2012
Апрель 2012
Март 2012
Февраль 2012
Апрель 2011
Март 2011
Февраль 2011
Январь 2011
Декабрь 2010
Ноябрь 2010
Октябрь 2010
Сентябрь 2010
Август 2010
Июль 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010

Случайные:
Настройка звука в Linux с помощью alsamixer

Подключаемся к чату Gmail через Jabber

Настройка ethernet карты на Lenovo s10-3t

Ротация логов с помощью logrotate

Grab and Drag: Прокрутка страниц пальцем в firefox

Bolgenos. Опровержение «Телекона»



https://dici.ru/iphone/6-plus

Коллеги:    все
 Linux для всех

Наши баннеры:
linuxnow.ru
linuxnow.ru
Установить баннер