我需要一个不能使用JMF的java api来播放由SO编解码器解释的视频,但我想在java代码中检索每个帧。有人知道吗?
答案 0 :(得分:2)
看看FMJ。 不需要Java Media Framework(JMF)。
页面底部有一个example,用于将视频的前5帧写入文件,因此您应该可以访问各个帧。
答案 1 :(得分:2)
FMJ已经过时了,而JMF是一个失败的原因(是的其中一个是恕我直言)。如果你想要一些有用的东西并且完全按你所描述的那样做,那就试试Xuggle。在他们的媒体工具示例中,他们提供了一个使用AWT / Swing的简单播放器示例。 http://xuggle.com/
答案 2 :(得分:0)
如果您对FFMpeg的Java包装感到满意,请尝试velvet-video。
代码段可从视频文件中提取图像:
IVelvetVideoLib lib = VelvetVideoLib().getInstance();
try (IDemuxer demuxer = lib.demuxer(new File("/some/path/example.mp4"))) {
IDecoderVideoStream videoStream = demuxer.videoStream(0);
IFrame videoFrame;
while ((videoFrame = videoStream.nextFrame()) != null) {
BufferedImage image = videoFrame.image();
// Use image as needed...
}
}
here是使用天鹅绒视频实现视频播放器的更高级示例。
免责声明:我是天鹅绒视频的作者。