如何从Java视频中获取特定帧

时间:2016-11-29 14:48:26

标签: java video codec

我正在寻找一种从Java视频中检索特定帧的方法。例如,get frame #198 from movie.mp4。我不需要它是MP4特定的,只要该解决方案适用于常见的视频文件类型。我已经看过这样的库,比如Xuggle和JCodec,但是因为他们年纪大了,所以有支持问题; JCodec JAR甚至不包含存储帧所需的类之一。在没有修改JAR的情况下,JCodec不支持从文件中抓取单个帧。其他库需要循环才能到达特定帧。我想要一个能够返回特定帧的方法调用。

1 个答案:

答案 0 :(得分:0)

OpenCV允许您使用' OpenCVFrameGrabber'类。

在此记录:http://bytedeco.org/javacv/apidocs/org/bytedeco/javacv/OpenCVFrameGrabber.html

您可以遍历该文件,或者如果您想要避免这种情况,则可以使用' setFrameNumber'设置捕获应该发生的帧。班级的方法。

需要注意的一件事 - 据报道,如果以这种方式对视频进行编码,openCV成名数设置将会转到最近的Iframe。我没有测试过,所以无法确认,但解决这个问题的一种方法是在所需的帧之前寻找一个位置,然后迭代最后几帧以获得你想要的位置,然后使用帧抓取器。