I'm attempting to use VLC's scene-filter to extract all frames from an mp4 video. The video in question runs at 25fps, and is precisely 38s long.

In the command line, I ran with options:

--video-filter = scene --start-time = 0 --stop-time = 35 --scene-ratio = 1

I understood (?) that the scene ratio is the ratio of frames taken from total frames (that is, a ratio of 3 means 1/3 frames are saved). However, of the ~900 frames I'm expecting, I get only about 500 of them.

I've tried using 25, -1, and the default scene-ratio values, to no avail.

What am I doing wrong? The VLC docs aren't very clear about this.

1 Answer 1


I can't comment, so I will try to know more from here.

If you just want to extract frames, then i can tell you other methods like using python. I also checked by extracting frames using vlc, and it gave me error for each frame like this

[00007fd7d8005430] main video output warning: picture is too late to be displayed (missing 40 ms)

To get this error you just have to add -v in the end of your code. -vv for more detailed output. so it should look like this:

cvlc video.mp4 --video-filter scene --start-time 0 --stop-time 20 --scene-ratio 1 --scene-path Downloads/video -v

and I don't know how to solve that. I would suggest using python to extract all frames. If you specifically want answer for this problem then just comment below, I will delete the answer. And if you are ok with python solution then i will update answer with python code.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .