如何从Java中的视频中获取特定的框架



我正在寻找一种从Java中检索特定帧的方法。例如,get frame #198 from movie.mp4。我不需要特定于MP4,只要解决方案在常见的视频文件类型上起作用。我已经看到了库的库,例如Xuggle和JCODEC,但是随着它们年龄较大,因此有支持的问题。JCODEC JAR甚至不包含存储框架所需的类之一。JCODEC不会在不修改JAR的情况下支持从文件中获取单个帧。其他库需要循环才能进入特定的框架。我只想有一个方法调用,该调用将返回特定的框架。

openCV将允许您使用'opencvFrameGrabber'类。

它在此处记录:http://bytedeco.org/javacv/apidocs/org/bytedeco/javacv/opencvframegramegrabber.html

您可以通过文件迭代,或者如果要按照指示避免这种情况,则可以设置捕获应在类的" setFramenumber"方法时发生的框架。

要注意的一件事 - 据报道,如果视频是通过这种方式编码的,那么OpenCV名望数设置将转到最近的IFRAME。我尚未对此进行测试,因此无法确认,但是解决此问题的一种方法是在以前的位置上找到一个位置,但要靠近所需的框架,然后迭代最后几个帧以获得所需的位置,然后使用框架抓手。

最新更新