Сборка секвенции кадров в видео с помощью кодека 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 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии