Anton Ashanin
Anton Ashanin

Reputation: 1827

How to extract programmatically video frames?

I need programmatically extract frames from mp4 video file, so each frame goes into a separate file. Please advise on a library that will allow to get result similar to the following VLC command (http://www.videolan.org/vlc/):

vlc v1.mp4 --video-filter=scene --vout=dummy --start-time=1 --stop-time=5 --scene-ratio=1 --scene-prefix=img- --scene-path=./images vlc://quit

Library for any of these Java / Python / Erlang / Haskell will do the job for me.

Upvotes: 2

Views: 3035

Answers (2)

scarfboy
scarfboy

Reputation: 86

I would personally look for libraries that wrap ffmpeg/libavcodec (the understands-most-things library that many encoders and players use).

I've not really tried any yet so can't say anything about code quality and ease, but the five-line pyffmpeg example suggests it's an easy option - though it may well be *nix-only.

Upvotes: 0

Alexander Serebrenik
Alexander Serebrenik

Reputation: 3577

Consider using the following class by Popscan. The usage is as follows:

VideoSource vs = new VideoSource("file://c:\test.avi");
vs.initialize();
...
int frameIndex = 12345; // any frame 
BufferedImage frame = vs.getFrame(frameIndex);

Upvotes: 1

Related Questions