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

Java 如何以编程方式提取视频帧?,java,python,haskell,erlang,video-processing,Java,Python,Haskell,Erlang,Video Processing,我需要以编程方式从mp4视频文件中提取帧,这样每个帧都会进入一个单独的文件。请提供一个库,该库允许获得类似于以下VLC命令()的结果: 这些Java/Python/Erlang/Haskell中的任何一个的库都可以为我做这项工作。我个人会寻找包装ffmpeg/libavcodec的库(许多编码器和播放器使用的最了解的库) 我还没有真正尝试过,所以不能说代码质量和易用性,但建议这是一个简单的选择-尽管它可能只是*nix而已。考虑使用Popscan提供的以下内容。用法如下: VideoSource

我需要以编程方式从mp4视频文件中提取帧,这样每个帧都会进入一个单独的文件。请提供一个库,该库允许获得类似于以下VLC命令()的结果:


这些Java/Python/Erlang/Haskell中的任何一个的库都可以为我做这项工作。

我个人会寻找包装ffmpeg/libavcodec的库(许多编码器和播放器使用的最了解的库)


我还没有真正尝试过,所以不能说代码质量和易用性,但建议这是一个简单的选择-尽管它可能只是*nix而已。

考虑使用Popscan提供的以下内容。用法如下:

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

VideoSource需要JMF。这里提供了源代码和文档,但它太旧了,不太有用:我刚刚在这里发布的一个答案对任何想做类似事情的人都很有用:这已经过时了
VideoSource vs = new VideoSource("file://c:\test.avi");
vs.initialize();
...
int frameIndex = 12345; // any frame 
BufferedImage frame = vs.getFrame(frameIndex);