Вы можете использовать фильтр select
чтобы выбрать кадры, которые соответствуют выражению. Если выражение оценивается как ненулевое число или true
, оно выберет эти кадры. Например, если ваш фильтр -vf select="between(n\, 0\, 7)"
, он выберет первые восемь кадров. Номер кадра равен n
и начинается с нуля.
Комбинируя это с оператором mod
(modulo), вы можете выбрать первые восемь кадров каждой группы, скажем, 24 кадра, то есть каждую секунду для видео с 24 кадрами в секунду:
ffmpeg -i input.mp4 -vf "select=between(mod(n\, 24)\, 0\, 7), setpts=N/24/TB" output.mp4
Фильтр setpts
необходим для настройки временных меток кадров, чтобы в вашем видео не было пропусков.
Чтобы получить первые восемь кадров каждые пять секунд, умножьте 24 на 5:
ffmpeg -i input.mp4 -vf "select=between(mod(n\, 120)\, 0\, 7), setpts=N/24/TB" output.mp4
Чтобы вывести все в PNG, измените вывод с output.mp4
на output-%04d.png
- вы получите последовательно пронумерованные PNG.