如何以编程方式提取视频帧?

时间:2013-06-26 11:33:13

标签: java python haskell erlang video-processing

我需要以编程方式从mp4视频文件中提取帧,因此每个帧都会进入一个单独的文件。请告知库,以便获得类似于以下VLC命令(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

任何这些Java / Python / Erlang / Haskell的库都可以帮我完成工作。

2 个答案:

答案 0 :(得分:1)

考虑使用Popscan的以下class。用法如下:

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

答案 1 :(得分:0)

我个人会寻找包装ffmpeg / libavcodec的库(许多编码器和玩家使用的理解最多的东西)。

我还没有真正尝试过,所以对代码质量和易用性一无所知,但是the five-line pyffmpeg example表明这是一个简单的选择 - 尽管它可能只是* nix。