2012年07月29日

SDLのコンパイル&インストール

SDL(Simple DirectMedia Layer)は、ffplayをビルドするときに必要なライブラリです。

DirectX SDKが必要ですので、MinGW-w64をインストールしておいてください。
MinGW-w64 for win32 のインストール

libiconvもインストールしておいてください。
libiconvのコンパイル&インストール


SDLは、以下の場所にあります
http://www.libsdl.org/

左メニュー「Download」の「SDL 1.2」より、
http://www.libsdl.org/download-1.2.php

Source Code: の下にある、
SDL-1.2.15.tar.gz
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xzf SDL-1.2.15.tar.gz
$ cd SDL-1.2.15
$ ./configure --prefix=/mingw --disable-shared --disable-assembly
$ make
$ make install

以上で終了です。


このままだと、ffmpegやffplayをコマンドプロンプトで実行した時に、ヘルプなどの文字情報が一切表示されなくなります。
コマンドプロンプトでの文字情報が必要な場合は、configureの29827行目辺り、SDL_LIBSの「-mwindows」オプションを削除してから、configureを実行してください。

修正前:
SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
修正後:
SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS"

その代わり、ffplayで動画再生中も、コマンドプロンプトが表示されるようになります。
修正しなくても、携帯動画変換君のログウィンドウや、MSYSのシェルでは文字情報が表示されますので、必要に応じて修正してください。


【補足】
・ffmpegのconfigureについて
ffmpegのオリジナルのconfigureでは、インストール済みのSDLを見つけられませんでした。

ffmpegのconfigureの3484行目辺り、
sdl_libs=$("${SDL_CONFIG}" --libs)
この「--libs」を「--static-libs」に修正して、
sdl_libs=$("${SDL_CONFIG}" --static-libs)
とすることで、SDLが有効になりました。

ffmpegのパッチ2012/07/29版で対策済みです。


・SDLのconfigureについて
「--disable-assembly」を付けなくても、SDLはコンパイルできて、ffplayもビルドできるのですが、動画をffplayにドロップすると、一瞬黒い画面が起動してすぐ消えます。

ffmpegのconfig.makの、CFLAGSやLDFLAGSを変えてみたり、いろいろ試してもダメだったので、gdbでffplayをデバッグしてみたところ、SDLの
src/video/SDL_yuv_mmx.c
の94行目で、SIGSEGVを吐いてクラッシュしてました。

続きを読む


【更新履歴】を見る
posted by あべちん at 12:18 | Comment(0) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/57314191
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック