2016-08-15 158 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) 圖像如何生成特定幀的圖像? –