5 Ways to Extract Frames from Video: Best Extractors in 2023

Every video or animation you see on your television, computer, phone, tablet or even at the movie theater is made up from a succession of still images. These images are then played one after the other several times a second which fools your eye into thinking the object is moving. The quicker the images are played, the smoother and more fluid the movement looks.

Most movies and TV programs are filmed at around 24-30 images per second, each individual image is called a frame which is where you see the term frames per second (FPS). A video file on a computer simply stores all the frames together and plays them in order, and the total frames stored for a typical movie reaches into the hundreds of thousands. If you want to capture an image of one or two frames it’s quite easy and you simply pause the video and press the Print Screen key.

If you want to extract a succession or range of frames or even all frames from a short video clip, capturing the images one at a time is incredibly inefficient and time consuming. For that purpose, you need a program that can extract however many video frames you want and save them to image files automatically, like jpg or png. Here are 5 ways to do it.

Best Video Frame Extractor Tools

1. Free Video to JPG Converter

The program itself will save frames from a video file to a sequence of JPG images. There are four extraction methods to choose from, extract an image every number of frames, extract an image every number of seconds, take a total number of frames from the video or extract every single frame.

free video jpg converter

Add any number of video files by using the Add files button or drag and drop, most video formats are supported like MP4, MKV, AVI, VOB, WMV, MOV, FLV and etc. Set your extract criteria and optionally a different save location to the default, then start the process. Extraction times are reasonable and will differ depending on video length and how many frames are being extracted.

There are a few issues with one or two of the preset values or if you enter a custom value in the frame boxes. For instance, the total frames from a video setting of 10 doesn’t produce an expected equal split of 10 frames across the whole video. It’s still a useful tool though and worth checking out because Free Video to JPG Converter is still faster than extracting images in real time.

If you have Windows 10 but not .NET Framework 2/3.5 then it will be offered on install.

Download Free Video to JPG Converter

Note: Like all DvdVideoSoft products, Free Video to JPG Converter always comes bundled with something you don’t really want. At the moment it’s just a DVDVideoSoft product hub which you can delete the shortcut for on your desktop and a stats option on install which is opt in. That could change to anything else at any time though so you just need to pay attention during setup.

2. VLC Media Player

VLC is a popular open source media player that can save sequences of images from any video you choose to play. This can be achieved through the main user interface while more advanced users can use Command Prompt. First we’ll deal with the user interface method.

1. If you haven’t already, Download VLC media player and install or Download Portable VLC media player and extract to a folder of your choice.

2. Open VLC, go to Preferences (Ctrl+P) and click on Show All Settings at the bottom left.

3. Expand Video > Filters in the tree and click on Scene Filter. Set the image format (png/bmp/jpg etc), the path to save the files (leave blank to save to your Pictures folder) and the recording ratio. The ratio will save an image every xx number of frames, so if your video is 30 frames per second, a value of 150 will save an image every 5 seconds.

vlc scene video filter

Tip: If you’re not 100% sure of the video’s frame rate, play it in VLC, press Ctrl+J and look for the frame rate number. Using multiples of that value will give you a recording ratio in seconds.

vlc codec framerate

4. Click on Filters in the Advanced Preferences tree (don’t expand it) and tick the Scene video filter box near the top right, press Save.

enable vlc scene filter

5. Play the video file and the images will automatically start saving. They will continue to save until you press stop, even if you pause or skip through the video.

Note: If after following these steps images are not being created, close VLC after step 4 and re-open it, then play the video. For some reason more recent versions of VLC do not recognize the scene filter is enabled until you close and re-open the program.

vlc saved frames

Once you are done saving frames the option needs to be turned off again or it will do the same with every video you play. Follow steps 1 and 3 above then untick the Scene video filter box. The biggest drawback with VLC is that you have to leave the video running while taking the images, for this reason we recommend VLC for shorter clips only unless you plan to watch the video anyway.

3. Extract Images with VLC from the Command Line

Using the Command line to extract image frames with VLC is similar to the GUI method which will save the specified number of frames. Open a Command Prompt and change the directory to where vlc.exe is located, then type in the command below:

vlc.exe “pathtovideo” –video-filter=scene –vout=dummy –start-time=300 –stop-time=600 –scene-ratio=250 –scene-path=”pathtosaveimages” vlc://quit

Pathtovideo is the name and path of the video file, –scene-path is the target folder for the images while –scene-ratio is the frame save interval. An advantage over the GUI method is the ability to use –start-time and –stop-time to start and stop saving frames at specific times (in seconds). Leave those switches out if you want to play the whole video. Refer to the complete list of commands at the Videolan website.

vlc save frames command line

VLC will run and start the playback but without the screen. Once finished, it will automatically exit.

4. VirtualDub

VirtualDub is a video processing tool that seems to have been around for ever, but it’s still a popular and useful program. The main issue with VirtualDub is lack of support out of the box for opening video files like MKV, MP4 and MOV, but this problem can be rectified by installing the FFMpeg plugin pack. Here’s how to extract video frames to images with VirtualDub.

virtualdub extract frames

1. Download VirtualDub 32-bit version and also the VirtualDub FFMpeg Input Plugin from Sourceforge. Extract both zip archives.

2. Go to the VirtualdubFFMpegPlugin\Plugins32 folder, copy FFInputDriver.vdplugin and the ffdlls folder, then paste both into the VirtualDub\Plugins32 folder.

copy ffmpeg plugins

3. Run Virtualdub.exe and open the video file by using File > Open or drag and drop. If you wish to save every frame of a small video file to images, skip to step 5.

4. Go to Video > Frame rate (Ctrl+R) and select Decimate by, then enter a number to save an image every xx number of frames. The No change option at the top will tell you how many frames per second the current video uses. Click OK.

virtualdub framerate control

5. Click on the File menu > Export > Image sequence. Enter the filename to save as, the folder to save into and the output format of BMP, TGA, JPEG or PNG. Then click OK and VirtualDub will begin to process the video.

virtualdub export image sequence

If the method of extracting every set number of frames is what you are looking for, VirtualDub is by far the best tool to use because it’s incredibly fast to extract the images and much faster than VLC and Free Video to JPG Converter.

An additional option in VirtualDub is setting a specific range inside the video itself so only images between the two points are saved.

virtualdub select range

Before saving at step 5, use the slider and frame controls to set the start range and press the Home key or selection start button (in the red box above), move the slider to the end of the range and press the selection end button or the End key. Now when you save the images, only the selected frames will be saved between the start and end selection points.

5. FFMpeg

FFMpeg is a framework for encoding, muxing, transcoding, streaming and playing video files, and is the backbone of a vast array of video converters and players. It runs only from the command line so is better suited to experienced users. FFMpeg should handle just about any video file you throw at it. Here’s a simple command line argument.

ffmpeg -i videofile.mpg -r 1 image-%04d.jpeg

The -i is the input video file with path and the jpeg filename simply saves jpegs (you can also use png, bmp, tiff etc) with the name and 4 place holding numbers, e.g. image-0001. The -r command is the frames to capture and the reverse of how you would expect it to work. 1 will save a frame every second while 0.5 will save every 2 seconds, 0.2 every 5 seconds, 0.1 every 10 seconds, 0.0167 for 60 seconds and etc. Use 1/seconds in Windows Calculator to get the ratio you need.

ffmpeg extract images

More advanced usage can add a starting point in the video file with the -ss command before -i, while -t can also be used to add a duration. Both use an [hours:]minutes:seconds argument.

ffmpeg -ss 04:00 -t 03:00 -i videofile.mpg -r 0.033 image-%04d.jpeg

ffmpeg extract with times

The above command will start at 4 minutes in, then save a .jpg at 30 second intervals for 3 minutes.

The are hundreds of commands and you really need to read the FFMpeg documentation to understand how it can be fully utilized from the command line and in scripts.

Download FFMpeg

Final Note: There are obviously other tools around that can do a similar task, Batch Video to image Extractor would have been included but it’s quite unstable and has been discontinued by the developer. Daum PotPlayer and GOM Player are media players that work in a similar way to VLC, meaning you have to play the video in real time to get the selected frames.

64 Comments - Write a Comment

  1. Rick S. 2 years ago
  2. glenndm 2 years ago
  3. Albert 3 years ago
  4. Reid Kincaid 3 years ago
    • Senna 3 years ago
  5. Christopher Abnett 3 years ago
  6. Gaston 3 years ago
    • Eric 2 years ago
  7. Julie Stenning 3 years ago
  8. Elina 4 years ago
  9. Daijoubu 4 years ago
    • HAL9000 4 years ago
  10. Pera 4 years ago
    • HAL9000 4 years ago
  11. Philippe RIO 4 years ago
  12. Mario 4 years ago
  13. victorfolio 4 years ago
    • HAL9000 4 years ago
      • Moizuddin Shah 4 years ago
        • HAL9000 4 years ago
          • Rodney 4 years ago
          • HAL9000 4 years ago
  14. Stephan 4 years ago
  15. Hyacin 4 years ago
  16. Vikas 5 years ago
    • HAL9000 5 years ago
  17. blafasel42 5 years ago
    • QuarterSwede 5 years ago
    • Mangolinux804 4 years ago
  18. Sam 5 years ago
  19. Oliver 5 years ago
  20. Apokal 6 years ago
  21. The Max Million 6 years ago
    • Sue 6 years ago
    • Matthew 5 years ago
  22. Bruce 6 years ago
    • Adi 6 years ago
    • jork 6 years ago
      • Bob 6 years ago
  23. David 7 years ago
  24. lynn 7 years ago
    • HAL9000 7 years ago
      • rm86 7 years ago
        • HAL9000 7 years ago
          • rm86 7 years ago
          • Karl 6 years ago
          • HAL9000 6 years ago
      • Nick 6 years ago
        • HAL9000 6 years ago
  25. GoofProg A.S. 7 years ago
  26. Jumabek 7 years ago
  27. Miracle Max 7 years ago
  28. [email protected] 7 years ago
  29. BG Davis 7 years ago
    • HAL9000 7 years ago
  30. charlie 7 years ago
  31. Ruud Schroën 7 years ago
  32. Toby 7 years ago
    • Miracle Max 7 years ago
  33. Dr.V.Balaji 7 years ago
  34. VD-problem 8 years ago
  35. Rick Cheney 8 years ago
    • HAL9000 8 years ago
  36. alec Jacobs 8 years ago

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Your comment is subject to approval. Read our Terms of Use. If you are seeking additional information on this article, please contact us directly.