I'm trying to use ffmpeg on a video to extract a list of specific frames, denoted by their frame numbers. So lets say I want to extract just one frame from 'test_video.mp4', frame number 150 to be exact. I can use the following command
ffmpeg -i test_video.mp4 -vf "select=gte(n\, 150)" -vframes 1 ~/test_image.jpg
But what if I want to exact a list of frames, such as [100, 110, 127, 270, 300]
? I have been looking at this page (https://ffmpeg.org/ffmpeg-filters.html#select_002c-aselect) and can see that there are ways to extract multiple frames based on parity of frame number, timestamps, etc, but I can't find the syntax for doing what I need to do.
Ideally I would extract the list of given frames under the naming convention out_image%03d.jpg
where the %03d
is replaced by the given frame number, although a timestamp would also work.
Is there a way to do this?