トップ 検索 一覧 ヘルプ RSS ログイン

MinGW+ffmpeg(1)準備の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!MinGW+ffmpeg-準備
ビルド環境であるMinGWやソースファイルの収集、前提条件に関して説明する。

!!ビルド環境
MinGWを使用する。MinGWの環境は[[今更MinGWシリーズ|今更MinGWインデックス]]で構築した環境を使用する。

なお、使用するMinGWのgccのバージョンは、2008年春時点でMinGWのCurrentである'''3.4.5'''である。理由は今更MinGWのページを参照。4.2.1を入れてしまっている場合は、[[今更MinGW(5)]]を参照し3.4.5の環境として欲しい。4.2.1の環境を保存しなくて良いのであれば、MinGWのリリースページからCurrentのアーカイブを取得・展開して丸ごとMinGWのディレクトリに上書きしてしまっても良い。
なお、使用するMinGWのgccのバージョンは、2008年春時点でMinGWのCurrentである'''3.4.5'''である。理由は[[今更MinGW|今更MinGWインデックス]]のページを参照。4.2.1を入れてしまっている場合は、[[今更MinGW(5)]]を参照し3.4.5の環境として欲しい。4.2.1の環境を保存しなくて良いのであれば、MinGWのリリースページからCurrentのアーカイブを取得・展開して丸ごとMinGWのディレクトリに上書きしてしまっても良い。

!!ソースファイル
様々な理由からソースアーカイブへの直リンクはしていない。
x264の取得は面倒なので猫科研究所の[[x264 git snapshot proxy]]をお薦めする。
,モジュール,DLページ,ファイル名等
,[liba52|http://liba52.sourceforge.net/],[DLページ|http://liba52.sourceforge.net/downloads.html],a52dec-0.7.4.tar.gz
,[xvidcore|http://www.xvid.org/],[DLページ|http://www.xvid.org/Downloads.43.0.html],xvidcore-1.1.3.tar.gz
,[faac|http://www.audiocoding.com/],[DLページ|http://www.audiocoding.com/downloads.html],faac-1.26.tar.gz
,[faad|http://www.audiocoding.com/],[DLページ|http://www.audiocoding.com/downloads.html],faad2-2.6.1.tar.gz
,[LAME|http://lame.sourceforge.net/],[DLページ|http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309],lame-3.97.tar.gz
,[POSIX Threads for Win32|http://sourceware.org/pthreads-win32/],[DLページ|ftp://sourceware.org/pub/pthreads-win32/],pthreads-w32-2-8-0-release.tar.gz
,[x264|http://www.videolan.org/developers/x264.html],[daily snapshot|ftp://ftp.videolan.org/pub/videolan/x264/snapshots/]{{br}}[git(web)|http://git.videolan.org/gitweb.cgi?p=x264.git;a=summary]{{br}}git(git://git.videolan.org/x264.git),Revision807
,[ffmpeg|http://ffmpeg.mplayerhq.hu/],[DLページ|http://ffmpeg.mplayerhq.hu/download.html]{{br}}svn://svn.mplayerhq.hu/ffmpeg/trunk,下記参照

!ffmpegのソース
ffmpegは2008年春現在、H.264/AVCのmp4の出力に問題があるように思われる。具体的には、[GOM Player|http://www.gomplayer.jp/] や [Haali Media Splitter|http://haali.cs.msu.ru/mkv/] + [ffdshow|http://ffdshow-tryout.sourceforge.net/]では再生できない。[MPlayer|http://www.mplayerhq.hu/]では最初の数秒間分は映像が表示されず、その後正常再生となる。

このため最新のソースではなく、少々古いリビジョンをSubversion経由で取得することをお薦めする。この特集では猫科研究所で動作確認の取れている'''Revision9726'''(2007/07/18)をメインに使用し、最新バージョンの解説としてRevision'''12665'''(2008/04/02)を使用する。なお、記事の内容が膨らみすぎてしまうため、ここではSubversionについての説明は割愛させていただく。

ffmpegの更新は複数人で、日々どころか数時間毎、頻繁に行われる。多少のリビジョンの前後はビルドの方法自体に影響ないが、ソースの問題で'''ビルドエラーになるリビジョンも多い'''ので注意が必要だ。コツとしては、更新日時を見て間隔の大きく(5〜6時間以上)空いているところを見つけ、そのリビジョン番号の若い(小さい)方を取得するのがよい。更新が落ち着き、ビルド可能になっている可能性が高い。また、大抵の場合'''nightly snapshotはビルドくらいは通る'''のでこれを使うのも良い。

!!各ライブラリのインストール
各ライブラリのインストールは、全て'''ファイルコピーで行う'''。つまり、make installやinstall-sh等は使用しない。
これはffmpeg関連ライブラリがそれほど汎用的なものではないことから、インストールしているファイル名を明確にしてアンインストール可能とするためと、ffmpegに必要なファイルを明確にするためである。まぁ、あれだ。単純に好きじゃないんだ。

この特集では行わないが、ライブラリを簡単に/mingw以外にインストールして切り分ける方法は[M.a.Factory社長日誌|http://mafactory.com/usersvoice/blogs/master/archive/category/1000.aspx]に詳しいので参照されたい。

!!ビルド方針
この特集内ではffmpegで必要としない物は基本的にビルドしない。
つまり、各ライブラリには大抵、単独で実行するためのコマンドが付属しているが、これらの機能性は考慮しない。
後日、別の記事としてより高機能にビルドすることはあるかもしれない。

!!基本的なビルドの流れ
MinGWやCygwin、Linux等でのビルドを経験したことのない方のため、これらのシステムで一般的なビルド〜インストールの流れを書いておく。
 $ tar xfvz library-src.tar.gz
 $ cd library-src
 $ ./bootstrap
 $ ./configure --prefix=/mingw --disable-shared --enable-static
 $ make
 $ make install
library-srcは当然実際にはビルド対象のファイル・ディレクトリ名だ。
*./bootstrapや./configureは不要なことがある。
*./configureのパラメータはライブラリにより、または用途により不要。{{br}}例えば本特集では--prefixは使用しない。
**--prefixはインストール先を指定している。{{br}}このように指定すると/mingw/binにコマンドが配置されるなど適切に処理される。
**--prefixはインストール先を指定している。{{br}}例えば上記例のように指定すると/mingw/binにコマンド(*.exe)が配置されるなど適切に処理される。
**--disable-sharedは共有ライブラリ(*.so)のビルドを無効化している。
**--enable-staticは静的ライブラリ(*.a)のビルドを有効化している。
*make installは使えない場合がある。makeに他のパラメータが必要な場合がある。