Как извлечь 1 скриншот для видео с ffmpeg в данный момент времени?
есть много учебников и вещей, показывающих, как извлечь несколько скриншотов из видео с помощью ffmpeg. Вы устанавливаете -r, и вы даже можете начать определенную сумму.
но я просто хочу 1 скриншот, скажем, 01: 23: 45 in. Или 1 скриншот на 86% в.
Это все возможно с ffmpegthumbnailer но это еще одна зависимость, от которой я не хочу зависеть. Я хочу быть в состоянии сделать это с ffmpeg.
2 ответов:
использовать :
ffmpeg -ss 01:23:45 -i input -vframes 1 -q:v 2 output.jpg
для вывода JPEG используйте
-q:vконтроль качества продукции. Полный диапазон-это линейная шкала 1-31, где более низкое значение приводит к более высокому качеству. 2-5-это хороший выбор, чтобы попробовать.The выберите фильтр предоставляет альтернативный метод для более сложных потребностей, таких, как выбор только определенные типы кадров, или 1 на 100, и т. д.
размещение
-ssперед входом будет быстрее. Смотрите Ffmpeg Wiki: Ищу и этот фрагментffmpegдокументация по инструменту cli:
-ssустановки (ввода/вывода)при использовании в качестве опции ввода (перед
-i), ищет в этом входном файле позицию. Обратите внимание, что в большинстве форматов невозможно искать именно такffmpegбудет стремиться к ближайшей точке поиска, прежде чем позиция. При перекодировании и-accurate_seekвключено (the по умолчанию), этот дополнительный сегмент между точкой поиска и позицией будет быть декодированным и отброшенным. При выполнении потоковой копии или когда-noaccurate_seekиспользуется, он будет сохранен.при использовании в качестве опции вывода (перед выходным именем файла) декодирует, но отбрасывает ввод до тех пор, пока временные метки не достигнут позиции.
позиция может быть либо в секундах, либо в
hh:mm:ss[.xxx]форма.
FFMpeg может сделать это, обратившись к данной метке времени и извлекая ровно один кадр в виде изображения, см. например:
ffmpeg -i input_file.mp4 -ss 01:23:45 -vframes 1 output.jpgдавайте объясним варианты:
-i input file the path to the input file -ss 01:23:45 seek the position to the specified timestamp -vframes 1 only handle one video frame output.jpg output filename, should have a well-known extensionThe
Comments