opencv視頻讀取問題


視頻讀寫概述

Wikipedia,自由的百科全書

 

對視頻進行讀寫,可使用OpenCV提供的CvCapture和CvVideoWriter。

在Windows平台下,OpenCV以前提供的讀寫功能采用VFW,效率低下且有些格式支持不好。而 OpenCV 2.0 內置了videoInput Library,可以自動在VFW和DirectShow間切換

Windows下從攝像頭采集圖像

請參考:

Windows下讀寫視頻

很多朋友在Windows下使用cvCreateFileCapture無法打開視頻文件,或cvCreateVideoWriter創建視頻文件時,經常無法創建文件。可從http://www.xvidmovies.com/codec/ 下載XviD codec,並安裝。然后就可以用cvCreateFileCapture打開XviD編碼的視頻文件(注意:采用其他編碼格式的仍然不一定能打開)。創建視頻文件時,請使用CV_FOURCC('X', 'V', 'I', 'D')則定可成功。

小訣竅:

  • 要調整XviD視頻質量,可以運行“開始->所有程序->Xvid->Configure Encoder”,設置"Target Quantizer",如下圖所示:
Image:Xvid-config-quality.png
  • 缺省情況下,創建視頻文件時,會彈出一個XviD編碼窗口,要禁止此窗口出現,可點擊上面窗口里的"Other options...",取消"Display encoding status"。如下圖所示
Image:Xvid-config-nodisplay.png
 另外一種方法:

剛開始使用OpenCV1.0+codeblocks10.2來學習開發opencv,入門教程的讀取視頻遇到一些問題。用cvCreateFileCapture()函數讀取AVI視頻文件(該視頻文件由QQ影音截取轉存得來),返回值為NULL,讀取失敗。同時,《學習OpenCV》例程里的avi視頻文件可以讀取。

        此時,說明電腦上解碼器有問題,AVI視頻文件也有不同的編碼。xp系統中,使用Windows Media Player 可以播放AVI文件時,問題就解決了。

        解決辦法:給系統裝FMP4解碼器地址:www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/f/project/ff/ffdshow-tryout/SVN%20builds%20by%20xxl/win32%20generic%20builds/ffdshow_rev3562_20100907.exe

        裝好之后,發現,問題就這么解決了!

opencv創建視頻:CvVideoWriter* cvCreateVideoWriter ( const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1 );
fourcc
四個字符用來表示壓縮幀的codec 例如,
CV_FOURCC('P','I','M','1') = MPEG-1 codec
CV_FOURCC('M','J','P','G') = motion-jpeg codec
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

如果碰到H264編碼格式的文件,opencv讀取不了,如果電腦中已有Xvid轉換器,可用視頻轉換器將其轉為XviD編碼格式的,本人用的狸窩轉換器,比較方便。

 


免責聲明!

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



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