2015年1月31日 星期六

[Java]JavaCV播放影片(1)

程式碼參考自這裡 - OpenCV Lover  ,但這個範例會出現奇怪的問題:

warning couldn't read movie file

後來我稍微改了一下就正常了,不過它用的是比較舊版本的JavaCV,所以import 的

package name會不一樣,先說明一下,這個範例不會有聲音 ,下一篇才會寫聲音的部

分,請見諒。


專案內容




程式碼

 
package javacvplayvideo;

import java.io.File;
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.FFmpegFrameGrabber;


public class JavaCVPlayVideo {

    public static void main(String[] args) {
       //new一個File,路徑為要撥放的檔案
       File f=new File("/Users/flowercatswets/Desktop/demo.mp4");
       
      //建立一個CanvasFrame ,用來撥放影片
      CanvasFrame canvas=new CanvasFrame("北七部落格 - JavaCV Play Video Demo");
      //設定關閉CanvasFrame時一併結束程式
      canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
      //宣告一個FrameGrabber用來取得影片Frame
       FFmpegFrameGrabber frameGrabber =
            new FFmpegFrameGrabber(f.getAbsolutePath());
      
      try
      {
         //開始取得影片Frame
          frameGrabber.start();
          
          //宣告一個IplImage用來裝取出的Frame
          IplImage img;
          
           //把Frame取出放進img(先取一張做畫面大小的設定)
           img=frameGrabber.grab();
           //設定畫面大小
           canvas.setCanvasSize(img.width(), img.height());
          
          while (true)
          {
              //把Frame取出放進img
              img=frameGrabber.grab();
              
              if (img!=null)
              {
                  //顯示取出來的畫面
                  canvas.showImage(img);
              }
              
          }
      }
      catch(Exception e)
      {
          e.printStackTrace();
      }
    }
    
}


執行畫面




啟動撥放時,Console會輸出影片的詳細資訊





沒有留言:

張貼留言