2016-08-15 149 views
-2

我正在研究一个项目对视频进行分析,并且我想将视频分割成单独处理的帧。我看了几个开源库,包括Xuggler和FFMPEG,但它们都过时了,无法使用。有没有简单的方法可以从视频中提取帧并将它们作为BufferedImage的集合进行处理?如何从视频java中提取帧?

+1

FFMPEG仍在积极维护http://ffmpeg.org/的最后一个版本是本月... – litelite

回答

-1

您可以使用OpenCV图像和视频处理免费开源框架。并且还有一个很好的Java包装器。

0

关注这个代码

import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
import org.bytedeco.javacpp.opencv_core.IplImage; 
import org.bytedeco.javacv.FFmpegFrameGrabber; 
import org.bytedeco.javacv.FrameGrabber.Exception; 

public class Read{ 
    public static void main(String []args) throws IOException, Exception 
    { 
     FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("D:/video.mp4"); 
     frameGrabber.start(); 
     IplImage i; 
     try { 

      i = frameGrabber.grab(); 
      BufferedImage bi = i.getBufferedImage(); 
      ImageIO.write(bi,"png", new File("D:/Img.png")); 
      frameGrabber.stop(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    } 
} 
+0

您的代码将产生第一帧(每秒1) 图像如何生成特定帧的图像? –