Ви можете використовувати 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
The 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-файли.