Учебное пособие по FFmpeg для создания видео из изображений.

Последнее обновление: 12/12/2025
Автор: Исаак
  • FFmpeg позволяет преобразовывать последовательности изображений в пользовательские видеоролики, управляя частотой кадров, кодеками и разрешением.
  • Существует несколько методов ввода (спецификаторы формата, шаблоны glob и конкатенатор демультиплексоров) для обработки различных типов имен файлов.
  • Полученные видеоролики можно улучшить, добавив звук, водяные знаки, эффекты, изменив скорость воспроизведения и масштабирование.
  • FFmpeg выделяется своей мощностью и автоматизацией, а графические альтернативы предлагают более простые рабочие процессы для пользователей, не обладающих техническими навыками.

Учебное пособие по FFmpeg для работы с файлами изображений.

Если вы когда-нибудь задумывались, как превратить гору фотографий в плавное видео (Будь то замедленная съемка, презентация или видеоролик для социальных сетей), FFmpeg, вероятно, является самым мощным инструментом, который вы найдете… и это бесплатное программное обеспечение. Он может показаться немного сложным в использовании, поскольку управляется извне. терминално с несколькими команды При должном понимании и некоторой практике он становится мощным союзником для автоматизации задач, которые с помощью графического редактора заняли бы целую вечность.

В этом руководстве вы подробно узнаете, как это сделать. Используйте FFmpeg для создания видео из файлов изображений.От установки и подготовки фотографий до управления скоростью, форматом вывода, добавления звука, наложений и даже экспериментов с эффектами ускоренного и замедленного движения. Вы также увидите несколько различных методов работы с последовательностями изображений (спецификаторы формата, шаблоны glob, конкатенация демультиплексоров) и некоторые менее технические графические альтернативы, если командная строка вам не подходит.

Что такое FFmpeg и почему стоит научиться им пользоваться?

FFmpeg - это набор инструментов и библиотек с открытым исходным кодом Для обработки практически любых видео, аудио и даже изображений. Название происходит от "Fast Forward Moving Picture Experts Group", и хотя это может показаться неочевидным, именно эта технология лежит в основе многих платформ, которыми вы пользуетесь ежедневно: сервисов потоковыйсоциальные сети, медиаплееры, онлайн-конвертеры и т. д.

В отличие от классических редакторов с графическим интерфейсом, управление FFmpeg осуществляется с помощью графического интерфейса. команды, написанные в терминалеНа первый взгляд это может показаться впечатляющим, но на самом деле это обеспечивает точный контроль над кодированием, кодеками, фильтрами, качеством, разрешением и, самое главное, позволяет автоматизировать пакетные процессы с помощью скриптов или интегрировать систему в другие системы.

К числу его сильных сторон относится то, что он мультиплатформенная: работает на Linux, WindowsmacOS и другие системы UNIXКроме того, он распространяется под лицензиями GPL/LGPL и BSD, поэтому вы можете использовать его как в личных, так и в коммерческих проектах без уплаты каких-либо сборов.

С помощью FFmpeg вы можете, например, создать таймлапс из тысяч фотографий, извлечение изображений из видеоОбъединять фотографии, добавлять звуковые дорожки, вставлять водяные знаки, менять кодек, уменьшать размер файла или создавать анимированные GIF-файлы… все это с помощью терминала.

Установка FFmpeg на разных системах

Установка и использование FFmpeg с изображениями

Прежде чем начать конвертировать изображения в видео, вам необходимо иметь следующее: FFmpeg установлен корректно.Во многих дистрибутивах GNU/Linux он уже доступен в официальных репозиториях, а в macOS и Windows его также легко добавить.

В Debian, Ubuntu и производных дистрибутивах он обычно устанавливается с помощью системного менеджера пакетов. Из терминала можно выполнить такую ​​простую операцию, как обновление индекса пакетов, а затем... установите пакет ffmpeg с правами администратора.

В macOS наиболее удобный способ — использовать Homebrew как менеджер пакетовСначала установите Homebrew (если у вас его ещё нет), а затем добавьте FFmpeg одной командой `brew`. Это позволит избежать необходимости вручную скачивать бинарные файлы и управлять путями.

В Windows у вас есть несколько вариантов: загрузить Официальный исполняемый файл с сайта FFmpeg. и добавьте его в переменную PATH, или используйте установщики, такие как Chocolatey, для установки из командной строки. В любом случае, после установки вы сможете запускать команду ffmpeg из любого терминала или командной строки.

Независимо от вашей системы, вы можете убедиться в успешности установки, введя команду в терминале. ffmpeg -версияЕсли вы видите информацию о версии, информацию о сборке, а также список поддерживаемых кодеков и форматов, значит, все готово.

Основные понятия: видеовходы, видеовыходы и контейнеры.

Прежде чем углубляться в последовательности изображений, полезно прояснить некоторые понятия о том, как это работает. FFmpeg обрабатывает входные и выходные данные.А как выглядят форматы MP4, MKV или AVI, которые вы увидите в командах?

Общая структура команды FFmpeg обычно соответствует следующей схеме: параметры и входные файлы (обозначается как -i), затем фильтры и параметры кодирования, и, наконец, выходной файл. Между ними можно добавить параметры видео (-vf), параметры аудио (-af), кодеки (-c:v, -c:a), битрейт, частоту кадров и т. д.

Выходные файлы сохраняются в... видео контейнерMP4, MKV, AVI, MOV, WEBM… все это форматы контейнеров. Они сами по себе не определяют видео- или аудиокодек; они лишь указывают, как все упаковано, чтобы проигрыватели могли это понять. Например, файл MP4 может содержать видео H.264 и аудио AAC, а файл MKV может смешивать H.265 с аудио FLAC и… субтитры.

Для большинства случаев использования (особенно в веб-браузерах, мобильных устройствах и домашних плеерах) наиболее практичным форматом является MP4 с видео H.264MKV отличается отличной совместимостью и сбалансированным соотношением качества и размера. Если вам нужны расширенные функции (несколько дорожек, сложные субтитры и т. д.), MKV — отличный вариант, хотя браузеры поддерживают его не так хорошо.

С помощью FFmpeg можно перечислить огромное количество доступных кодеков. ffmpeg -codecs или специальные кодировщики с использованием ffmpeg-кодировщиков; в действительности, для большинства проектов с изображениями достаточно H.264 (libx264) и аудиоформата AAC. MP3если вы решите добавить звук.

  Исправление: чрезмерная загрузка ЦП дилером среды выполнения в Home Windows 10

Подготовьте изображения для преобразования их в видео.

Ключ к успешной работе FFmpeg при сшивании фотографий заключается в том, что Последовательность изображений упорядочена и названа правильно.Это особенно важно, если вы собираетесь использовать спецификаторы формата, такие как %d, %02d, %03d и т. д.

FFmpeg понимает различные шаблоны именования. Один из самых классических — использование ведущие нули для нумерацииНапример, фотографии типа photo-001.png, photo-002.png, … photo-999.png. В этом случае шаблон в команде будет выглядеть примерно так: photo-%03d.png (цифра 3 указывает количество цифр).

Если вас не слишком беспокоит количество цифр, вы также можете использовать имена без ведущих нулей: image1.jpg, image2.jpg, image3.jpg… с шаблоном image%d.jpg. FFmpeg позаботится о поиске файлов, имена которых соответствуют этому шаблону.

Также существует возможность использования шаблоны подстановочных символовНапример, файлы с расширениями *.jpg или image-*.png идеально подходят, когда ваши фотографии не пронумерованы, но имеют общее расширение или префикс. В этом случае FFmpeg сканирует все файлы, соответствующие этому шаблону.

Если в именах файлов по какой-либо причине встречается символ %, его необходимо экранировать, удвоив его. %% скорее %чтобы FFmpeg не интерпретировал это как спецификатор формата самого шаблона нумерации.

Преобразовать последовательность изображений в простой видеоролик.

Как только все изображения будут пронумерованы и помещены в одну папку, создание простого видеоролика станет проще простого... Укажите шаблон входных данных и имя выходного файла.Например, если ваши фотографии называются img-01.png, img-02.png и т. д., вы можете сделать что-то подобное:

ffmpeg -i img-%02d.png video_output.avi

В этом случае FFmpeg будет искать файлы, имена которых начинаются с img-, за которым следуют две цифры, и упакует их в файл AVI. скорость воспроизведения и кодек по умолчанию Они будут зависеть от стандартных настроек вашей сборки FFmpeg, но для чего-то простого обычно этого достаточно.

Если требуется более точный контроль, обычно также указываются следующие параметры: частота кадров ввода с параметром -framerate и выходной кодек с параметром -c:v. Типичный пример для MP4 может выглядеть так:

ffmpeg -framerate 5 -i img-%02d.png -c:v libx264 -pix_fmt yuv420p video.mp4

Здесь указывается, что следует считывать 5 изображений в секунду, что видео должно быть закодировано с использованием H.264 (libx264), а формат пикселей должен быть yuv420p, что наиболее совместимо с распространенными телевизорами, браузерами и плеерами.

Выбор оптимальной частоты кадров

La частота кадров (fps) Этот параметр определяет количество изображений, отображаемых в секунду в итоговом видео. Единого правильного значения не существует: оно полностью зависит от желаемого эффекта и исходного материала.

Если вы генерируете покадровая анимация Для быстрой покадровой съемки частота кадров, например, 24 или 25 кадров в секунду (стандарт для кино/телевидения), обычно обеспечивает ощущение плавного движения. Для очень интенсивной покадровой съемки можно использовать частоту до 30 кадров в секунду или даже выше.

Напротив, для а слайд-шоу приостановленоЕсли вы хотите, чтобы каждая фотография отображалась всего несколько секунд, вам, вероятно, понадобится гораздо более низкая частота кадров: например, 1 или 2 кадра в секунду. Это позволит каждой фотографии дольше оставаться на экране без необходимости дублирования файлов.

Обратите внимание, что если вы не зададите параметр -framerate во входных данных, FFmpeg может использовать значение по умолчанию (часто). 25 кадров в секунду) что может не соответствовать вашим ожиданиям и привести к созданию видео, которое будет слишком быстрым или слишком медленным в зависимости от количества фотографий.

Помимо частоты кадров, вы можете управлять скорость воспроизведения задним числом с фильтрами, такими как setpts для видео (например, setpts=0.5*PTS, чтобы воспроизведение происходило в два раза быстрее) и atempo для аудио (atempo=2.0, чтобы звук также воспроизводился в два раза быстрее).

Создавайте видеоролики из одного изображения.

Не всегда нужна полная последовательность снимков. Иногда достаточно одной фотографии. оставаться на экране в течение определенного времениНапример, в качестве вступительного или статического экрана с заголовком и логотипами перед основным контентом.

Это делается с помощью опции -цикл 1Эта команда указывает FFmpeg зациклить изображение, а параметр -t задает общую продолжительность клипа. Типичная команда может выглядеть так:

ffmpeg -loop 1 -i cover.jpg -c:v libx264 -t 10 -pix_fmt yuv420p cover.mp4

В этом примере создается 10-секундное видео, в котором ваше изображение обложки (.jpg) остается статичным. После этого вы можете... Объедините этот короткий ролик с другим основным видео. сформировать единый непрерывный файл, включая вступление.

Если вы также хотите применить небольшой эффект движения (плавное масштабирование, панорамирование и т. д.), вы можете использовать видеофильтры, например, зумпан или комбинации масштаба, кадрирования и отступов для имитации небольшого движения камеры.

Метод 1: Спецификаторы формата для нумерованных последовательностей

Если ваши фотографии правильно пронумерованы (image1.jpg, image2.jpg, image3.jpg…), то наиболее прямой способ… превратите эту последовательность в видео. Это означает использование спецификаторов формата в пути ввода.

Например, если ваши файлы имеют форматы image1.jpg, image2.jpg, … image50.jpg, вы можете создать видео, считывая по одному изображению в секунду и генерируя выходной сигнал со скоростью 30 кадров в секунду с помощью этой команды:

ffmpeg -framerate 1 -i image%d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4

  Как векторизировать PDF-файл: полное пошаговое руководство

В этом контексте -framerate 1 означает, что считывается одно изображение в секунду. Опция `-r 30` устанавливает частоту кадров выходного видео на 30 кадров в секунду. FFmpeg будет использовать наименьшее число в качестве первого изображения; если вы хотите начать с другого, вы можете добавить `-start_number 8`, например, чтобы начать с изображения image8.jpg.

Если вы пронумеровали файлы с ведущими нулями (image01.jpg, image02.jpg, …), вам потребуется скорректировать шаблон: image%02d.jpg для двух цифр, image%03d.jpg для трех и так далее. Важно, чтобы шаблон точно соответствовал тому, как вы написали имена, иначе FFmpeg выдаст ошибку «файл не найден».

Выбор -c:v libx264 Параметр -pix_fmt yuv420p указывает на необходимость использования видеокодера H.264, а параметр -pix_fmt гарантирует совместимость полученного файла с большинством проигрывателей, браузеров и т. д. мобильный тока.

Метод 2: Шаблон Glob для непоследовательных имен

Если ваши изображения не следуют простой системе нумерации, но имеют общий характер распространенное расширение или префикс файлаС помощью шаблона glob в FFmpeg можно выбрать все файлы сразу, не переименовывая их по одному.

Представьте, что у вас в папке есть множество файлов .jpg, перемешанных с файлами других форматов, и вы хотите использовать все эти файлы .jpg (независимо от их названий) для создания видео. Типичная команда будет выглядеть примерно так:

ffmpeg -framerate 30 -pattern_type glob -i «*.jpg» -c:v libx264 -pix_fmt yuv420p output.mp4

Здесь вы указываете с помощью -pattern_type glob Вы будете использовать шаблон с подстановочными знаками, и с помощью "*.jpg" вы указываете FFmpeg считать все файлы с расширением .jpg в текущем каталоге. Таким образом, будет создано слайд-шоу, где каждая фотография будет представлять собой отдельный кадр видео.

Если у вас есть имена с общим префиксом, вы можете сделать что-то вроде этого: "image-*.png" Выбрать только файлы, начинающиеся с image- и заканчивающиеся на .png. Это удобный способ фильтрации, не требующий существенной реорганизации папок.

Конечно, стоит помнить, что порядок обработки изображений Это будет зависеть от того, как система возвращает файлы, соответствующие шаблону. Если вам нужен определенный порядок, не соответствующий алфавитному порядку, возможно, лучше переименовать файлы или перейти к другому методу, например, к `concat demuxer`.

Метод 3: Демультиплексор Concat для создания пользовательских презентаций

Когда вы хотите получить полный контроль над порядок и длительность каждого изображенияДемультиплексор concat — ваш лучший друг. Идея проста: вы создаете текстовый файл, в котором перечислены изображения и продолжительность отображения каждого из них, а затем FFmpeg генерирует видео, следуя этому скрипту.

Сначала в той же папке, где находятся фотографии, создайте файл с названием, например, таким: ввод.txtВнутри вы добавляете строки примерно такого вида:

файл 'imagen01.jpg'
продолжительность 3
файл 'imagen02.jpg'
продолжительность 5
файл 'imagen03.jpg'
продолжительность 2

Каждый блок файла/длительности указывает на Путь изображения и количество секунд, в течение которых оно будет оставаться на экране.Вы можете регулировать продолжительность показа, чтобы одни фотографии отображались дольше других, что идеально подходит для презентаций с закадровым комментарием, обзоров проектов и т. д.

Как только у вас будет текстовый файл готовВы выполняете команду следующим образом:

ffmpeg -f concat -safe 0 -i input.txt -c:v libx264 -pix_fmt yuv420p output.mp4

Параметр Параметр -f concat указывает на использование демультиплексора для конкатенации.Опция `-safe 0` позволяет использовать менее строгие пути (например, при использовании абсолютных путей). FFmpeg прочитает каждую строку, внутренне соберет последовательность в оперативной памяти и сгенерирует видео, в котором каждый кадр будет отображаться во время воспроизведения. El Tiempo указано.

Добавьте аудио, текст и водяные знаки к своим видео.

После того, как вы освоите конвертацию фотографий в видео, вполне естественно возникнет желание... добавить звуковую дорожку (музыка, закадровый текст, эффекты) и наложение текста или логотипа для придания более профессионального вида.

Для интеграции звука в презентацию с изображениями можно воспользоваться следующими возможностями: шаровидные узоры и добавьте второй параметр -i, указывающий на звуковой файл. Например:

ffmpeg -framerate 1 -pattern_type glob -i «*.jpg» -i audio.mp3 -shortest -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4

В этом случае, -shortest указывает конечную продолжительность файла Она выбирает кратчайший путь, поэтому, если аудиодорожка длиннее последовательности изображений, она обрывается сразу после завершения показа фотографий.

Если вы хотите наложить изображение с логотипом или водяным знаком на существующее видео, вы можете использовать этот фильтр. наложение, Например:

ffmpeg -i video.mp4 -i watermark.png -filter_complex «overlay=10:10» output.mp4

Часть overlay=10:10 указывает на позиция (x,y), где размещается изображение водяного знака Что касается видео: если вы хотите отрегулировать прозрачность, вы можете объединить фильтр смешивания с параметром all_opacity, чтобы установить, например, 70% прозрачности для водяного знака.

Контроль качества, разрешения и размера файла.

FFmpeg предлагает множество опций для Сбалансируйте качество изображения, разрешение и размер итогового видео.Одним из наиболее важных является параметр. -CRF при использовании libx264 в качестве кодека.

Значение -crf (постоянный коэффициент скорости) Определите целевое качество: чем ниже число, тем лучше качество (и тем больше размер файла); чем выше число, тем сильнее сжатие и меньше размер файла. Значения, например, 18, обычно обеспечивают очень высокое качество практически без видимых потерь, в то время как 22-23 значительно экономят место, сохраняя при этом очень достойный внешний вид для веб-проектов.

  Простые способы быстрее рассчитать стоимость iPhone и iPad

Если вам нужно изменить разрешение видео, вы можете использовать фильтр масштабирования Добавление параметра -vf scale=WIDTH:HEIGHT. Например:

ffmpeg -i input.mp4 -vf scale=640:480 -c:v libx264 -pix_fmt yuv420p output_480p.mp4

В этом примере видео преобразуется в 640 × 480 (480p)Вы можете адаптировать эту пару значений к конкретному необходимому разрешению (1280×720 для 720p, 1920×1080 для Full HD и т. д.), помня при этом, что масштабирование не создает деталей, а лишь увеличивает изображение.

Распространенные проблемы при преобразовании изображений в видео.

При работе с FFmpeg, особенно при обработке большого количества фотографий, часто встречаются следующие проблемы: некоторые типичные ошибки Эти моменты важно помнить, чтобы не сойти с ума.

Одна из них связана с Неправильные или несогласованные имена файловЕсли отсутствует промежуточная нумерация, если происходит странный скачок или если шаблон команды не соответствует фактическим именам изображений, FFmpeg может остановиться с сообщениями об ошибках или проигнорировать некоторые кадры.

Также распространены опечатки в командахОтсутствующая кавычка, неправильно написанный дефис, параметр, который должен быть разделителем, и т. д. Перед тем как окончательно сойти с ума, рекомендуется внимательно проверить синтаксис и, при необходимости, обратиться к официальной документации или примерам использования.

Ещё одна важная деталь – это формат пикселейЕсли вы не укажете yuv420p в качестве выходного параметра, у некоторых старых плееров могут возникнуть проблемы совместимости с определенными форматами пикселей по умолчанию. Добавление параметра `-pix_fmt yuv420p` обычно избавляет от многих проблем.

Наконец, помните, что FFmpeg находится в активной разработке.Если вы используете очень старую версию, вы можете столкнуться с ошибками, странным поведением или ограничениями, которые были исправлены в более новых версиях. Поддержание FFmpeg в актуальном состоянии, как правило, является хорошей идеей, особенно если вы работаете с современными форматами или высоким разрешением.

Автоматизируйте сложные рабочие процессы с помощью скриптов и YAML.

Когда начинаешь использовать FFmpeg не просто для разового эксперимента, это становится очень логичным решением. автоматизация повторяющихся задач с помощью скриптов. В некоторых проектах FFmpeg сочетается с конфигурационными файлами YAML и утилитами, такими как yq, для создания очень гибких рабочих процессов.

Например, у вас может быть скрипт что он читает config.yml, где вы определяете список элементов (изображения, видео, продолжительность каждого, уровни громкости, начальные и конечные кадры и т. д.) и автоматически генерирует временные клипы, которые затем объединяются в одно итоговое видео в соответствии с заданными параметрами.

Такие системы позволяют осуществлять сборку. Вступительные ролики со статичными изображениями, основные видеоблоки и заключительные ролики, созданные соответствующими организациями.Добавление плавных переходов (с использованием фильтров, таких как xfade для видео и acrossfade для аудио), настройка разрешения, стандартизация звука и в целом обеспечение очень согласованного стиля и качества во всей серии видеороликов.

Преимущество этого подхода в том, что Любой может редактировать файл YAML. (или форма, которая его генерирует), чтобы определить, что вы хотите смонтировать, в то время как скрипт позаботится обо всех вызовах FFmpeg, без необходимости для конечного пользователя напрямую обращаться к командной строке.

Нетехнические альтернативы FFmpeg для объединения изображений и видео.

Всё вышеперечисленное отлично подходит, если вам удобно писать команды. Вы не против работы с синтаксисом и терминалами.Но правда и то, что для многих людей такая среда неудобна, и они предпочитают что-то более наглядное, где можно перетаскивать элементы.

В этой области существуют программы для редактирования, такие как... Wondershare Filmora или другие видеоредакторы с графическим интерфейсом Эти инструменты позволяют создавать слайд-шоу из фотографий, добавлять переходы, вставлять музыку и экспортировать в формат MP4 всего за несколько кликов. Они не обладают такой же точностью и возможностями автоматизации, как FFmpeg, но очень доступны для пользователей без технических навыков. Если вы ищете альтернативы, ориентированные на Windows, вы также можете обратиться к руководствам по их использованию. Создавайте видео с помощью классических видеоредакторов..

В последнее время появились и другие решения, в том числе: ИИ для создания видеогде вы просто загружаете фотографию, пишете короткое описание, и система позаботится об анимации изображения, добавлении движения камеры, интерполяции кадров, увеличении длительности клипа или даже создании автоматических звуковых дорожек.

Эти инструменты предназначены для тех, кто стремится к визуально привлекательному результату, не углубляясь в такие понятия, как кодеки, контейнеры, частота кадров или фильтры, в ущерб тонкой настройке каждого параметра. Однако FFmpeg остается идеальным выбором, когда вам это необходимо. точность, воспроизводимость и возможность интеграции в автоматизированные рабочие процессы или сложные проекты..

Как только вы поймете, как FFmpeg интерпретирует шаблоны именования, как обрабатывать частоту кадров, кодеки, формат пикселей, длительность и конкатенацию, он станет своего рода швейцарским армейским ножом, который вы сможете использовать для... переход от простых наборов изображений к отточенным видеороликам.Готов к созданию таймлапсов, презентаций, онлайн-курсов, маркетинговых кампаний или любых других проектов, которые вы только можете себе представить, — и все это со свободой свободного программного обеспечения и мощью командной строки.

Как создать видео из фотографий в Windows 11
Связанная статья:
Как создать видео из фотографий в Windows 11 (полное руководство)