【问题标题】:How to get specific frame from a video in Java如何从Java中的视频中获取特定帧
【发布时间】:2016-11-29 14:48:25
【问题描述】:

我正在寻找一种从 Java 视频中检索特定帧的方法。例如,get frame #198 from movie.mp4。只要解决方案适用于常见的视频文件类型,我不需要它是特定于 MP4 的。我见过这方面的库,例如 Xuggle 和 JCodec,但由于它们较旧,因此存在支持问题; JCodec JAR 甚至不包含存储帧所需的类之一。如果不修改 JAR,JCodec 不支持从文件中抓取单个帧。其他库需要循环才能到达特定帧。我想要一个返回特定帧的方法调用。

【问题讨论】:

  • @Berger 该问题的解决方案使用了一个涉及已弃用代码的 JCodec 示例,而该问题的另一个答案不是检索特定帧

标签: java video codec


【解决方案1】:

OpenCV 将允许您使用“OpenCVFrameGrabber”类执行此操作。

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

你可以遍历文件,或者如果你想避免这种情况,你可以使用类的“setFrameNumber”方法设置捕获应该发生的帧。

需要注意的一件事 - 据报道,如果视频以这种方式编码,openCV 名人编号设置只会转到最近的 iframe。我尚未对此进行测试,因此无法确认,但解决此问题的一种方法是在所需帧之前但附近寻找一个位置,然后迭代最后几帧以获得所需的位置,然后使用图像采集卡。

【讨论】:

  • openCV...获取框架...ok
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 2013-07-20
  • 1970-01-01
相关资源
最近更新 更多