Сборка секвенции кадров в видео с помощью кодека FFmpeg

Рендерить из Blender сразу в видео-файл не всегда удобно. Чаще на выходе рендера получают секвенцию (набор) кадров, которые потом, например после дополнительной пост-обработки, нужно собрать в итоговый видео-файл.

Собрать секвенцию кадров в видео можно, как средствами самого Blender, при помощи Visual Screen Editor (VSE), так и с помощью сторонних кодеков, например FFmpeg.

Для начала нужно скачать и установить кодек FFmpeg.

Скачать кодек можно с официального сайта FFmpeg: https://ffmpeg.org/download.html

Пользователи Windows могут скачать кодек с GitHub. На этот репозиторий ведет ссылка с официального сайта: https://github.com/BtbN/FFmpeg-Builds/releases

Кодек не требует специальной установки, достаточно распаковать скачанный архив в удобное место, например в директорию «Program Files».

Сборка секвенции кадров в видео

Вызов кодека осуществляется из командной строки.

Нажмите сочетание клавиш: Win + r, в открывшемся окошке введите «cmd» (без кавычек) и нажмите «Enter» — откроется окно консоли с командной строкой.

Для вызова кодека нужно указать полный путь к его исполняемому фалу, который находится в директории «bin». Например, если вы установили кодек в директорию «C:\Program Files\ffmpeg» его вызов будет осуществляться следующим образом:

Обратите внимание — здесь кавычки необходимы т.к. в исполняемой команде присутствует пробел.

Далее необходимо указать параметры для работы кодека:

В первую очередь укажем расположение директории с исходными кадрами.

Необходимо указать полный или относительный путь к директории, в которую Blender отрендерил кадры анимации.

Относительные пути указываются от корневой директории командной строки. Вы можете поменять корень командной строки с помощью команды «cd».

В данном примере указан относительный путь к директории «frames».

Blender сохраняет файлы с кадрами по номерам, состоящим из 4 цифр: 0001,png, 0002.png и т.д. Поэтому, чтобы все кадры были обработаны кодеком в качестве имени файла мы указываем маску «%%4d.png».

Blender сохраняет первый кадр под именем 0001.png, в то время, как кодек начинает считать кадры с нуля. Поэтому нужно указать в параметрах начальный кадр.

Часто бывает необходимо собрать в видео несколько секвенций кадров, сохраненных в разные директории, например, сначала цветные кадры и следом за ними — маску прозрачности.

Для того, чтобы указать кодеку несколько директорий с кадрами, пути к ним нужно записать в текстовый файл. Путь к каждой директории должен быть указан в новой строке, например для двух исходных директорий с кадрами «color» и «alpha», файл будет иметь следующий вид:

Можно подготовить такой файл вручную, а можно быстро создать из командной строки, выполнив две следующие команды:

После этого, можно вызвать кодек, указав созданный файл в качестве исходного:

Кодек может выдать ошибку «Unsafe file name». Для ее устранения добавим дополнительный параметр, разрешающий спорные имена файлов:

Все вместе:

Также кодеку необходимо указать директорию, в которую будет сохранено готовое видео:

В параметрах кодека можно указать уровень компрессии. Это делается через параметр «crf»:

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

Если для финального видео требуется уровень «lossless» (без потерь качества), нужно установить значение 0. Размер готового файла в этом случае получится очень большим.

Значение порядка 17 считается  визуально неотличимым по качеству от «lossless».

Так же на размер готового видео влияет пресет упаковки. Он также указывается в параметрах и имеет следующие значения:

При выборе пресета «ultrafast» размер файла будет большим, а время, затраченное на его обработку и упаковку — минимально. При выборе значения «veryslow» готовый видеофайл будет формироваться дольше, но его размер будет меньше.

Для совместимости готового видео с QuickTime проигрывателями нужно установить параметр «format»:

Для того, чтобы использовался кодировщик H.264 нужно указать его в параметрах:

Для того, чтобы указать кодеку частоту кадров, нужно добавить параметр «r’, указав желаемое количество кадров в секунду (fps):

Для того, чтобы отключить подтверждение для перезаписи уже существующего файла, можно добавить параметр «-y»:

Все вместе:

Вызвав эту команду из командной строки вы укажете FFmpeg-кодеку собрать видео из кадров с указанными параметрами.


Для моих подписчиков на Patreon:

Командный файл *.cmd (Windows) в котором уже прописана команда сборки видео из секвенций кадров.

Если в папке проекта уже есть две директории с кадрами *.png : «color» (кадры в цвете) и «alpha» (кадры с альфа-маской) достаточно просто скопировать туда скачанный файл и запустить его двойным кликом. Готовое видео будет собрано в директорию «output».

Предустановленные параметры сборки (максимальное качество): H.264, компрессия «lossless», 60 fps, preset «veryslow».

При необходимости вы можете отредактировать файл, установив нужные параметры.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии