FFmpeg+OpenCV Linux下安裝和配置

FFmpeg+OpenCV Linux下安裝和配置

apt-get install subversion

前不久安裝好了OpenCV,昨晚測試一個avi視頻處理的時候,cvCreateFileCapture總是返回NULL,我懷疑是ffmpeg沒有配置好。今天就把OpenCV和ffmpeg都刪除了,重新安裝了下!最好把舊版本都刪除了!

ffmpeg安裝
源碼下載 : svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

文件配置 : ./configure --enable-shared --enable-gpl --enable-swscale

安裝 : make && make install

所有的庫文件默認安裝在/usr/local/lib 下, 所有的頭文件安裝在 /usr/local/include/lib*/下

測試 : ffplay a.avi

pkg-config安裝
$ yum install pkg-config

pkg-config 通過各個庫文件的.pc 文件識別已安裝的庫文件的信息,這些.pc文件是由各庫的安裝程序自己生成的,例如ffmpeg 安裝程序會在 /usr/local/lib/pkgconfig 目錄下提供 libavcodec.pc libswscale.pc 等5個.pc文件,分別對應安裝的五個庫文件。所以必須要讓pkg-config能找到ffmpeg的*.pc文件,通過PKG_CONFIG_PATH 來設置pkg-config來更新。

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

cmake安裝
$ yum install cmake

OpenCV安裝
源碼下載: http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/

$ cp OpenCV-2.4.0.tar.bz2 /usr/local/

$ tar -xvf OpenCV-2.4.0.tar.bz2

$ cd  OpenCV-2.4.0

2.4.0的下面是以CMakeLists.txt形式

$ cmake CMakeLists.txt

這裏可以查看是否已經支持ffmpeg,查看信息,FFMPEG已經是YES了

FFmpeg+OpenCV Linux下安裝和配置

$ make && make install

所有的庫文件默認安裝在 /usr/local/lib 下, 所有的頭文件安裝在 /usr/local/include/opcv*/下面

$ vim /etc/ld.so.conf

最後一行加入 /usr/local/lib

$ ldconfig

或者

export LD_LIBRARY_PATH=/usr/local/lib



/////////////////////////


由於給原來RHEL分配的空間太少,故而重新裝了下系統。安裝ffmpeg時候遇到如下的問題:

libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
make: *** [libavcodec/x86/dsputil_mmx.o] Error 1

這是個讓人抓狂的問題!!!找了許久,說是代碼有個bug!!!

解決方法:http://permalink.gmane.org/gmane.comp.handhelds.openembedded/51954

需要把libavcodec/x86/h264_qpel_mmx.c中的"g"替換爲“rm”即可解決!!!可以採用gedit使用批量替換。使用vim,進入命令行模式,輸入:%s/"g"/"rm"/g即可全部替換。

Warning:

另外在裝Opencv之前最好檢查安裝gtk庫,因爲ubuntu默認是沒有安裝的,最後編譯出來的程序可能無法正常執行。

鍵入如下命令檢查安裝:

apt-get install build-essential cmake libgtk2.0-dev


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章