C++でいろいろな形式の動画読み込みをしたいけどDirectXは使いたくなかったので、FFmpegで使っているlibavcodec等のライブラリをVisual C++で直接使おうと思ったのですが、ネットで探してもMinGWでFFmpegをコンパイルして使うような手順が書いてあるサイトばかりで時間を食いましたがVisual C++でFFmpegのライブラリを使う手順が書いてあるサイトを見つけました。
http://www.neowin.net/forum/blog/460/entry-3634-using-libavcodec-in-visual-studio-part-1/
一応ここにも日本語でVisual C++で使う手順を書いておきます。私の方ではVisual C++ 2010で動作するのを確認しています。
1. 下記サイトからSharedとDevのバイナリをダウンロード
http://ffmpeg.zeranoe.com/builds/
2. Devのinclude, libディレクトリをVisual C++のinclude, libディレクトリに指定
3. dllを読めるようにするためにSharedのbinディレクトリを環境変数Pathに追加するか、Visual C++プロジェクトの出力ディレクトリにコピー
4. inttypes.hをここからダウンロードしてC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\includeにコピー。ここにコピーするのが嫌ならincludeディレクトリとして読まれる場所に置けばどこでもOKです
5. あとはコードを書いてコンパイルするだけです。とりあえず下記コードが正常にコンパイル、リンク、実行ができれば一応使える環境は整ったということになります。動作確認する際はavcodec.lib、avformat.lib、swscale.libなどのライブラリをリンクするのを忘れずに。それとこのライブラリはC++でなくC言語で作られていてincludeする際にextern "C"をつけないと未解決の外部シンボルになってしまうので注意です
http://www.neowin.net/forum/blog/460/entry-3634-using-libavcodec-in-visual-studio-part-1/
一応ここにも日本語でVisual C++で使う手順を書いておきます。私の方ではVisual C++ 2010で動作するのを確認しています。
1. 下記サイトからSharedとDevのバイナリをダウンロード
http://ffmpeg.zeranoe.com/builds/
2. Devのinclude, libディレクトリをVisual C++のinclude, libディレクトリに指定
3. dllを読めるようにするためにSharedのbinディレクトリを環境変数Pathに追加するか、Visual C++プロジェクトの出力ディレクトリにコピー
4. inttypes.hをここからダウンロードしてC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\includeにコピー。ここにコピーするのが嫌ならincludeディレクトリとして読まれる場所に置けばどこでもOKです
5. あとはコードを書いてコンパイルするだけです。とりあえず下記コードが正常にコンパイル、リンク、実行ができれば一応使える環境は整ったということになります。動作確認する際はavcodec.lib、avformat.lib、swscale.libなどのライブラリをリンクするのを忘れずに。それとこのライブラリはC++でなくC言語で作られていてincludeする際にextern "C"をつけないと未解決の外部シンボルになってしまうので注意です
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
}
int main( int argc, char* argv[] ) {
av_register_all();
return 0;
}