StepMania4(Subversion版)のビルドと動画背景サポートについて(2009/1/29現在)
「Mandriva Linux 2009.0のStepManiaのパッケージで動画背景が動作しない件について」ではバージョン3.9で動画背景を動作させるためにGentooのパッチを適用してみたが、真っ黒なままになってしまっていた。そこで2009年1月現在で開発中(正式版未リリース)のバージョン4ではどうなっているかを試してみた。
必要なライブラリ
必要なライブラリ(開発パッケージ)はバージョン3.9のときと基本的に同じ。といったところは少なくとも必要のようだ。
コードの取得とビルド
コード取得からビルドの流れとしては一般的な形となる。下は作業例。$ svn co https://svn.stepmania.com/svn/trunk/stepmania/ $ cd stepmania/ (ここで別途パッチがあれば当てる) $ ./autogen.sh $ ./configure $ make
ここまでを行って正常にビルドが完了するとsrcディレクトリに実行ファイルstepmaniaが生成される。
FFmpegサポートについて
Mandriva Linux 2009.0に含まれるFFmpegライブラリでは検出に失敗して動画再生が無効になってしまっていた。パッチを探したところ
http://web.archive.org/web/20080514063203/http://www.nabble.com/-PATCH--Support-for-modern-ffmpeg-versions-td14630180.html
が見つかったが、そのままでは当たらず、別途微調整の必要な部分があった。それでも対象箇所の前後を見て一通り手動で反映できた。
その作業後に取り直した差分をLZMA圧縮してBase64エンコードしたものを下に貼り付ける。
[base64][引用][任意]ファイル名: stepmania4-r27866-ffmpeg-failed.patch.lzma.b64
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 YJ5Hn2B8stuvI6E=
下は適用作業例。
$ base64 -d [上のファイル] | lzcat > stepmania4-r27866-ffmpeg-failed.patch $ patch -p1 < stepmania4-r27866-ffmpeg-failed.patch patching file autoconf/m4/video.m4 patching file src/arch/ArchHooks/ArchHooks_Unix.cpp patching file src/arch/MovieTexture/MovieTexture_FFMpeg.cpp patching file src/arch/MovieTexture/MovieTexture_Theora.cpp
これをautogen.shの前に適用するか、適用後autoreconfを実行してからconfigureスクリプトからの作業を進めることで
(中略) checking for ov_open in -lvorbisfile... yes checking for mad_synth_init in -lmad... yes checking for library containing av_free... -lavutil checking for library containing avcodec_init... -lavcodec checking for library containing guess_format... -lavformat checking for library containing sws_scale... -lswscale checking for matching libavcodec headers and libs... yes checking for ogg_stream_init in -logg... (cached) yes checking for theora_decode_init in -ltheora... yes checking for TLS... yes (以下略)
FFmpegのライブラリ群が検出され、動画再生機能を有効にしてビルドが行われる。
結果
このパッチでは不十分なのか、今回も背景が真っ黒となってしまった。端末には
[avi @ 0x7f0a2c55bac0]Could not find codec parameters (Video: mpeg4, 640x480 [PAR 1:1 DAR 4:3])
のようなメッセージが出てきてデコードが正常にできていないように見えるが、対処方法は不明。
なお、ソースツリーにはWindows向けの静的リンクライブラリ(.libファイル)*1があるのを見つけたが、これはsrc/ffmpeg/000 StepMania README.txtによるとr8448らしい(結構古い)。パッチを当てる代わりにこのバージョンを取得すれば動くようになるのかもしれない。
ビルド自動化スクリプトを使用してみると...
そんな中でソースツリー内にUtils/build.shというスクリプトを見つけた。これはStepMania4のソースツリーに合ったバージョンのFFmpegライブラリ(r8448+独自パッチ)を自動でダウンロード・ビルドしてStepMania4のビルド時に組み込む(静的リンクする)もの。$ svn co https://svn.stepmania.com/svn/trunk/stepmania/ $ cd stepmania/ $ ./autogen.sh $ ./Utils/build.sh Downloading ffmpeg...okay. okay. Downloading ffmpeg patch...okay. Patching ffmpeg...okay. Configuring ffmpeg...okay. Building ffmpeg...okay. Configuring StepMania...okay. Building StepMania...okay. Copying StepMania binaries...okay.
この場合最上位ディレクトリに実行ファイルstepmaniaが生成される。
これを実行してみたところ、Xvid入りの.aviファイルでは動画背景が動くようになった。
しかし、wmv2のものは真っ黒だった。これはXvidなどの別コーデックにエンコードすればよさそう。
バージョン4の挙動について
まだ一部動作におかしい部分がある。TSUHSUIXAMUSHなど、挙動がバージョン3.9と異なるものもある。また、端末には
WARNING: Error playing command: /Themes/default/BGAnimations/ScreenEvaluationStage decorations/default.lua:56: attempt to index field '?' (a nil value) WARNING: /Themes/default/BGAnimations/ScreenEvaluationStage decorations/default.lua:56: unknown(self = (null),pss = (null),index = -1,pSongOrCourse = (null),pSteps = (null),hsl = (null),(*temporary) = (null),(*temporary) = (null),(*temporary) = (null),(*temporary) = 0,(*temporary) = 0,(*temporary) = (null),(*temporary) = (null),(*temporary) = (null),(*temporary) = attempt to index field '?' (a nil value))
のようなメッセージが出ることもある。
使用したバージョン:
- StepMania4 r27866
- lib64ffmpeg-devel 0.4.9-3.pre1.14161.1.1mdv2009.0