ffmpegの構築

例によって、先に結論。


ffmpegを最新にした。
音質に変化は無かった。
mencoder.exeも最新っぽいのに変えてみた。
遅延は直らなかった。




http://soenkerohde.com/tutorials/ffmpeg/
ここを見て、ものすごい適当に構築環境をインストール。
適当に最新のmingwインストーラとmsysインストーラをsf.netのダウンロードページからもらってきて(mingwのサイトのダウンロード一覧は微妙に古いっぽい)、currentをインストール。
msysは、既存のnds用開発環境を壊したくないので、途中の質問にはなんとなく「n」を答える(適当)。
msysにmingwディレクトリをmountしておく。

cd /etc
cp fstab.sample fstab
gvim fstab # 好きなエディタでどうぞ

この後、rxvt再起動。
それから、configure時にどうも新し目のbashが必要になるっぽいので、それもダウンロードし、適当に展開して設置しておいた。


lameが必要になるらしいので、適当にmsysのbashを起動し、インストールする。

tar xvfz lame-3.97.tar.gz
cd lame-3.97
./configure
make all install
cd ..

ffmpegのソースを貰ってくる。
自分は既にcuisubversionを入れてあるので、それを使う。
事前に、nds開発用msysから.subversionやらpath設定やらを反映させておいた。

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg

./configure --helpの結果によると、--enable-libogg等、気になるオプションもあるが、今回はdpgtools用なので今は放っておく。
代わりに、なんとなく関係ありそうな無さそうなオプションを適当に追加しておく。

./configure --enable-memalign-hack --enable-mingw32 --enable-mp3lame \
--enable-a52 --enable-swscaler --enable-pp --enable-gpl \
--extra-cflags=-I/local/include --extra-ldflags=-L/local/lib
make

(配布物に含める用途の場合は、GPLにするつもりがないなら、--enable-gplと、GPLで配布されているコーデックは外しておいた方がいいと思われる。多分。)
矢鱈とwarningが出るが、生成はされたので良しとする。


早速、生成されたffmpeg.exeをdpgtoolsの該当箇所に放り込んで(先に古いファイルをバックアップとってから)、dpgenc.exeを実行してみる。
動かない。
libmp3lame-0.dllが必要だとか言われるので、lameディレクトリの中からそれを探し出して(.libsの中にある)、ffmpeg.exeと一緒に放り込む。
(と言うか、参考にしたサイトがそうしてると言うだけで、本当にlameが必要なのかどうかは怪しいものだが。)
とにかく、再度実行。
動いた。変換完了。
転送。
再生。
音質には変化無し。


その後、mencoder.exeをバージョンアップしてみれば遅延そのものがなくなるかも知れない、という事に思い付いた。
最新っぽいパッケージからmencoder.exeをもらってきて、入れ替えてみた。
だが、やっぱり遅延したままだった。


あとは、dpgencが内部で行っている、ffmpegを使った二段階変換の一段目を自前でなるべく音声劣化が無いように行ってみる、ぐらいだろうか……。
続きはまた今度にする。