*OpenCV/Building of opencv_ffmpeg.dll on OpenCV 2.3.1 [#vbb30bb4] #multilang(ja){{ **概要 OpenCV 2.3.1(Windows)では動画の読み書きでopencv_ffmpeg.dllを動的にロードして 処理が行われます.このopencv_ffmpeg.dllはコンパイル済のものが同梱されています. ここでは新しいffmpegを組み込んだopencv_ffmpeg.dllをビルドするための手順を示します. ※以降の手順は32bitを対象としています. 手順については下記のファイルに記載されています. opencv\3rdparty\ffmpeg\readme.txt **MinGW, MSYSのインストール +[[http://sourceforge.net/projects/mingw/]]からmingw-get-inst-20111118.exeをダウンロードする. +C Compiler, C++ Compiler, MSYS Basic systemにチェックを入れてインストールを続行する. +下記のバッチファイルを実行する. C:\MinGW\msys\1.0\msys.bat +実行後,下記のディレクトリ直下に/home/<username>/が生成されていることを確認する. C:\MinGW\msys\1.0 +MinGWのコンソール上で下記のコマンドを実行する. mingw-get install msys-coreutils +Windowsの環境変数pathに以下のpathを追加する. C:\MinGW\bin; **ffmpegのビルド +[[http://ffmpeg.org/download.html#release_0.10]]からffmpeg-0.10.tar.gzをダウンロードする. +展開して,MinGW, MSYSのインストールで生成された/home/<username>/に配置 +下記のバッチファイルを実行する. C:\MinGW\msys\1.0\msys.bat +/home/<username>/をカレントディレクトリにして,下記のコマンドを実行 mkdir build cd build ../ffmpeg-0.10/configure --disable-yasm --enable-w32threads make make install cd /local/lib strip -g *.a **opencv_ffmpeg.dllのビルド +下記のディレクトリに生成された*.aファイルをopencv\3rdparty\libにコピーする.※オリジナルのライブラリ群は退避しておいてください. C:\MinGW\msys\1.0\local\lib +下記のディレクトリに生成されたディレクトリをopencv\3rdparty\include\ffmpeg_コピーする.※オリジナルのヘッダ群は退避しておいてください. C:\MinGW\msys\1.0\local\include +C:\opencv-svn\opencv\3rdparty\ffmpeg\make.batを以下のように書き換える(今回32bit対象なので64bit用はコメントアウト). set path=C:\MinGW\msys\1.0\bin;%path% & gcc -Wall -shared -o opencv_ffmpeg.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat -lavcodec -lavdevice -lswscale -lavutil -lwsock32 :: set path=c:\dev\msys64\bin;%path% & gcc -m64 -Wall -shared -o opencv_ffmpeg_64.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat64 -lavcodec64 -lavdevice64 -lswscale64 -lavutil64 -lavcore64 -lwsock32 -lws2_32 +下記のバッチファイルを実行. C:\opencv-svn\opencv\3rdparty\ffmpeg\make.bat +下記ディレクトリにopencv_ffmpeg.dllが生成されることを確認. C:\opencv-svn\opencv\3rdparty\ffmpeg }}