2012-09-14 3 views
5

FFMPEGライブラリ以外の/ usr/libにリンクするOpenCVを設定できないようです。OpenCVをカスタムFFMPEGにインストールしてビルドする

LD_LIBRARY_PATH=/pathto/ffmpeg-0.10.2/lib

また、私が設定したpkgconfig:しかしCMakeの内

PKG_CONFIG_PATH=/samepathto/ffmpeg-0.10.2/lib/pkgconfig/

私のLD_LIBRARY_PATHは、FFMPEGのカスタムインストール用のフォルダへの直接リンクが含まれています私はFFMPEGへのパスの設定を見つけることができません - 基本またはカスタムのいずれか。 FFMPEGに関連する唯一の設定は、WITH_FFMPEGタイプの設定(ONに設定)のようです。

私はOpenCVをビルドすることができますが、libavcodecのシステムライブラリにリンクしているようです.-システムライブラリがバージョン.52で、私のインストールバージョンがFFMPEGであるため、競合が発生します。同じシステムライブラリを持たないマシンでアプリケーションをリンクすると、OpenCV(特にlibavcodec)のカスタムインストールにリンクしていないようです(共有ネットワークフォルダにこれらのライブラリをインストールしています)。

私の問題がFFMPEGの間違ったバージョンをビルドしてリンクしているのか、ビルドした後で自分の環境に何か問題があるのか​​どうかは分かりません(間違ったffmpegにリンクしてください)。

私はLinux、Redhat 6、OpenCV 2.3.1でビルドしています。

export LD_LIBRARY_PATH=/ffmpeg_install_path/lib/ 
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/ffmpeg_install_path/lib/pkgconfig 
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/ffmpeg_install_path/lib/ 

のようなものが動作するはず

答えて

6

。少なくとも私のUbuntuのOpenCV 2.4.xで動作します。

+0

これは私の究極の問題に関連していました(ソースファイル内でこれを行っていました。)> – enderland

+0

ファイル 'CMakeCache.txt'を削除する必要がありました。 – paugier

0

OpenCVの3.xとffmpegの3.xのために、私は次のパッチ

diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake 
index 13b62ac..bab9df3 100644 
--- a/cmake/OpenCVFindLibsVideo.cmake 
+++ b/cmake/OpenCVFindLibsVideo.cmake 
@@ -228,6 +228,12 @@ if(WITH_FFMPEG) 
    if(FFMPEG_libavresample_FOUND) 
     ocv_append_build_options(FFMPEG FFMPEG_libavresample) 
    endif() 
+ CHECK_MODULE(libavcodec HAVE_FFMPEG) 
+ CHECK_MODULE(libavformat HAVE_FFMPEG) 
+ CHECK_MODULE(libavutil HAVE_FFMPEG) 
+ CHECK_MODULE(libswscale HAVE_FFMPEG) 
+ CHECK_MODULE(libswresample HAVE_FFMPEG) 
+ CHECK_MODULE(libavresample HAVE_FFMPEG) 
    if(HAVE_FFMPEG) 
     try_compile(__VALID_FFMPEG 
      "${OpenCV_BINARY_DIR}" 

#!/bin/bash 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Applications/ffmpeg/lib 
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/Applications/ffmpeg/lib/pkgconfig 
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$HOME/Applications/ffmpeg/lib 

cmake \ 
    -D BUILD_EXAMPLES=ON \ 
    -D BUILD_TESTS=OFF \ 
    -D OPENCV_EXTRA_EXE_LINKER_FLAGS="-Wl,-rpath,$HOME/Applications/ffmpeg/lib" \ 
    -D CMAKE_BUILD_TYPE=RELEASE \ 
    -D CMAKE_INSTALL_PREFIX=$HOME/Applications/opencv \ 
    /path/to/opencv 

を構築するには、次のスクリプトを使用して、ビルドffmpegのを適用する必要が、私はフラグ--enable-avresampleを有効にする必要があります。

関連する問題