iOSプロジェクトにFFmpegを組み込んでみました。
以下はMac OS X 10.8.5/Xcode 5.0.2で確認した内容です。
FFmpegライブラリのビルド
まず、FFmpegのユニバーサルライブラリをMac上でビルドします。
下記リンク先からgas-preprocessor.plを取得します
https://github.com/mansr/gas-preprocessor.
gas-preprocessor.plに実行権限を付与します
chmod +x gas-preprocessor.pl
gas-preprocessor.plを/usr/local/bin/に配置します。
下記からシェルスクリプトを取得します
https://gist.github.com/m1entus/6983547
ダウンロードしたシェルスクリプトを実行するとffmpegがダウンロード・ビルドされます。
sh build-ffmpeg.sh
下記ディレクトリにユニバーサルライブラリとヘッダーファイルが配置されます。
build/built/universal/
iOSプロジェクトへの組み込み
Xcodeで新規プロジェクトを作成します。
ライブラリのリンク
build/built/universal/lib以下に生成された.aファイルを
プロジェクトナビゲーターのFrameworksフォルダ以下にドラッグ&ドロップします。
必要に応じて「Copy items into destination group’s folder (if needed)」にチェックをいれます。
ライブラリのヘッダー追加
build/built/universal/includeをプロジェクトナビゲーターのブロジェクト名フォルダ以下にドラッグ&ドロップします。
プロジェクトのビルド設定
プロジェクトナビゲーターのプロジェクトをクリックするとエディタ部分にプロジェクト設定が表示されます。
Build Settingsタブを選択し、”Header Search Paths”を検索して、ffmpegのヘッダーを格納したフォルダ(例 $(SRCROOT))を、recursive(再帰)に設定して追加します。
次にBuild Phasesタブを選択し、libbz2.dylibとlibz.dylibを追加します。
テストコード作成・動作確認
AppDelegation.mを開き下記を追加します。
#include "avformat.h"
didFinishLaunchingWithOptions関数内に下記を追加します。
av_register_all();
これでビルド・実行すると、libavformatの初期化され、全てのmuxers, demuxers, protocolsの登録ができるところまで動作確認できます。