iOSプロジェクトにFFmpegを組み込む

iPhone

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の登録ができるところまで動作確認できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です