用Opencv保存視頻文件avi(轉)


初始化:
  CvVideoWriter *writer = 0;
  int isColor = 1;
  int fps = 25; // or 30
  int frameW = 640; // 744 for firewire cameras
  int frameH = 480; // 480 for firewire cameras
  writer=cvCreateVideoWriter("out.avi",CV_FOURCC(’P’,’I’,’M’,’1’),
  fps,cvSize(frameW,frameH),isColor);
   其他代碼對應的編碼器:
  CV_FOURCC(’P’,’I’,’M’,’1’) = MPEG-1 codec
  CV_FOURCC(’M’,’J’,’P’,’G’) = motion-jpeg codec (does not work well)
  CV_FOURCC(’M’, ’P’, ’4’, ’2’) = MPEG-4.2 codec
  CV_FOURCC(’D’, ’I’, ’V’, ’3’) = MPEG-4.3 codec
  CV_FOURCC(’D’, ’I’, ’V’, ’X’) = MPEG-4 codec
  CV_FOURCC(’U’, ’2’, ’6’, ’3’) = H263 codec
  CV_FOURCC(’I’, ’2’, ’6’, ’3’) = H263I codec
  CV_FOURCC(’F’, ’L’, ’V’, ’1’) = FLV1 codec
  將上面的改成 -1 將會打開一個編碼器的選擇窗口.
   將每幀圖像寫入視頻文件中:
  IplImage* img = 0;
  int nFrames = 50;
  for(i=0;i<nFrames;i++){
  cvGrabFrame(capture); // capture a frame
  img=cvRetrieveFrame(capture); // retrieve the captured frame
  cvWriteFrame(writer,img); // add the frame to the file
  }
  在循環里面加上下面語句將實時將視頻顯示在窗口mainwin中,cvWaitKey設置的是延遲時間:
  cvShowImage("mainWin", img);
  key=cvWaitKey(20); // wait 20 ms
  如果不設置20ms的延遲,視頻將可能顯示不正常.
   釋放資源:
  
cvReleaseVideoWriter(&writer);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM