【发布时间】:2008-11-05 13:45:58
【问题描述】:
我需要一个不能使用 JMF 的 java api 来播放由 SO 编解码器解释的视频,但我想检索 java 代码中的每一帧。有人知道吗?
【问题讨论】:
标签: java video buffer frame codec
我需要一个不能使用 JMF 的 java api 来播放由 SO 编解码器解释的视频,但我想检索 java 代码中的每一帧。有人知道吗?
【问题讨论】:
标签: java video buffer frame codec
看看FMJ。它确实不需要Java Media Framework (JMF)。
他们在页面底部有一个example,它将视频的前 5 帧写入文件,因此您应该能够访问各个帧。
【讨论】:
FMJ 已经非常过时了,而 JMF 是一个失败的原因(是的,其中之一就是恕我直言)。如果您想要一些可以正常工作并且完全符合您所描述的内容,请尝试 Xuggle。在他们的媒体工具示例中,他们提供了一个使用 AWT / Swing 的简单播放器示例。 http://xuggle.com/
【讨论】:
如果您对 FFMpeg 周围的 Java 包装器感到满意,请尝试 velvet-video。
代码 sn-p 从视频文件中提取图像:
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 找到使用 velvet-video 实现视频播放器的更高级示例。
免责声明:我是 velvet-video 的作者。
【讨论】: