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