仕事で、ストリーミングの案件を要求されまして、ちょっと、調べていました。
リアルタイム動画配信なるものを行いたいとのことで、オープンソースを調査していましたところ、x264とffmpegが王道とわかりました。
とりあえず、ソースを解析し、どうにか要求を満たせる使い方が無いものかを調査することにしました。
調査するにしても、やみくもにソースを眺めていても時間が過ぎてゆくだけなので、まず、デバッグ環境を作成することにしました。
これらオープンソースの開発環境には、LinuxやBSD系を使うことを前提としていますが、Windows上でもMinGW+Msysを使えばできるらしいので、環境構築から始めました。
gdbを使ってデバッグするのですが、どうせならGUI環境で効率良く作業を進めたいので、Eclipse+CDTを使うことにします。

MinGWとMsysは、適当に最新でも拾って来て、インストールすれば使えそうです。
後は、アセンブラを使うので、Yasmをひろってきて、コンパイル、インストールします。
例)
tar -xvf yasm-1.1.0.tar.gz
make
make install

最新ソースのゲット
x264は、gitというバージョン管理ソフトで管理されているので、Windows版をインストールします。
msys環境にgitのパスを通しておきます。
例)
[msys]/1.0/etc/profile
export PATH=".:/usr/local/bin:/mingw/bin:/bin:/C/Program Files/Git/bin:$PATH"

ffmpegのデバッグ
ffmpegをデバッグシンボル付きで、コンパイルします。
例)
./configure --disable-asm --disable-optimizations --extra-cflags="-g" --enable-shared --enable-memalign-hack

これで、ffmpegのデバッグ付きDLLが作成されるので、これを使ってEclipse上で、プロジェクトを作成します。

Eclipse+CDT
適当に最新版をインストールします。
Includeパスをffmpegに通しておいて下さい。
プロジェクト->プロパティ->GCC C Compiler->インクルードに、ffmpegのホームをセットして下さい。
さらに、ライブラリを設定します。
プロジェクト->プロパティ->MinGW C Linker->ライブラリー->検索パス
ffmpeg\libavcodec
ffmpeg\libavutil
ffmpeg\libavformat
プロジェクト->プロパティ->MinGW C Linker->ライブラリー->ライブラリ
stdc++
avutil
avcodec
avformat
wsock32
mingw32
gcc

とりあえずのソースを書きましょう。

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <tchar.h>
#include <time.h>
#include <sys/types.h>
#include <sys/timeb.h>

#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include <stdint.h>
#endif

extern "C"
{
#include "config.h"
#include "cmdutils.h"
}

int main( int arhc, char* argv[] )
{
 av_register_all();
}

ビルドを行って下さい。
デバッグ実行したいとこですが、その前に作成したDLLをDebugにコピーしておいて下さい。
avcodec-52.dll
avcore-0.dll
avformat-52.dll
avutil-50.dll

これで、av_register_all();をステップインできれば成功です。

Joomla templates by a4joomla