При работе с видеофайлами могут возникнуть случаи, когда вам потребуется извлечь только один кадр в секунду. Это может быть полезно для различных целей, например для создания предварительного просмотра, создания миниатюр или уменьшения размера файла видео. В этой статье мы рассмотрим несколько методов достижения этой цели с помощью FFmpeg, мощного инструмента командной строки для обработки видео. Итак, давайте углубимся и узнаем, как извлекать один кадр в секунду из видеофайлов, используя разговорные термины и практические примеры кода.
Метод 1: использование фильтра fps
Фильтр fps — это удобная функция в FFmpeg, которая позволяет нам устанавливать определенную частоту кадров для вывода видео. Указав значение 1 кадр в секунду, мы можем извлекать кадры с нужной скоростью. Вот пример команды:
ffmpeg -i input.mp4 -vf "fps=1" output%d.jpg
Эта команда берет входной видеофайл (input.mp4), применяет фильтр fps со скоростью 1 кадр в секунду и сохраняет каждый кадр как файл изображения (output%d.jpg). “%d” в имени выходного файла будет заменен порядковым номером для каждого кадра.
Метод 2: использование фильтра выбора
Другой метод извлечения одного кадра в секунду — использование фильтра выбора в FFmpeg. Этот фильтр позволяет нам выбирать определенные кадры на основе их временных меток. Вот фрагмент кода:
ffmpeg -i input.mp4 -vf "select='not(mod(n,25))'" -vsync 0 output%d.jpg
В этой команде мы используем фильтр выбора для выбора кадров с определенным интервалом. Значение «25» представляет частоту кадров 1 кадр в секунду (поскольку видео обычно имеет 25 кадров в секунду). Кадры сохраняются в виде файлов изображений с последовательными номерами в выходном формате%d.jpg.
Метод 3: использование параметра шага кадра
FFmpeg также предоставляет параметр шага кадра, который позволяет нам пропускать кадры во время извлечения. Установив значение шага кадра равным 25, мы можем извлекать один кадр в секунду. Вот пример:
ffmpeg -i input.mp4 -vf "framestep=25" output%d.jpg
Эта команда инструктирует FFmpeg пропускать 24 кадра между каждым извлеченным кадром, в результате чего получается один кадр в секунду. Кадры сохраняются в виде файлов изображений с последовательными номерами.
В этой статье мы рассмотрели три метода извлечения одного кадра в секунду из видеофайлов с помощью FFmpeg. Используя фильтр fps, фильтр выбора или параметр шага кадра, вы можете легко выполнить эту задачу. Независимо от того, создаете ли вы превью видео, миниатюры или оптимизируете размеры видеофайлов, FFmpeg предлагает мощные функции для извлечения кадров. Начните применять эти методы в своих рабочих процессах обработки видео и повысьте свою производительность уже сегодня!