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を吐いてクラッシュしてました。
続きを読む
【更新履歴】を見る
2012年07月29日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/57314191
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/57314191
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック