どうやらこの記事で50記事目だそうで(笑)
普段は配布情報しか書いていない役に立たないブログですが、
せっかくの記念ですし、たまにはビルドについてでも書いてみようかと。
ただ普通のビルドについては既にいろんな所に書かれていますので、
今回は、僕も主にテスターとして参加している
L-SMASH(Loyal to Spec of Mpeg4 and Ad-hoc Simple Hackwork)
を利用したx264のビルドについて書いていこうと思います。
ただしunofficial repogitoryを利用するのであくまで自己責任で。

この方法でビルドすれば、
  1. GPAC使わないで済む(ビルドが非常に楽になる)
  2. 音声エンコもできる(AVCodec,FAAC,LAME,QuickTimeSDKを利用)
などの利点があります(ただし、QuickTimeSDKはWindows環境のみ)。
他にもバイナリサイズが縮むなど色んな利点がありますが、割愛。
百利あって一害なしです(笑)

一応Windows環境とMacOSX環境の両方を書いていきます。
今回目指すビルドの方針は、
  1. できるだけラクをする
  2. 最低限のことしかしない
です(笑)
そのため若干強引なところもありますが悪しからず。

※基本的に32bitOSが前提です。
※Linuxの記事はまた後日・・・。

それでは早速。

[Windowsでのビルド方法]


1.ビルド環境構築
a) msysgit のインストール
  • ここから PortableGit をダウンロード。
  • 7zip展開する際に、展開先のフォルダを「C:\msys」に変える。
b) MSYS/MinGW のインストール
  • http://xhmikosr.1f0.de/index.phpにアクセスする。
  • toolフォルダの中の MSYS_MinGW_GCC_451_x86-x64.7z をダウンロードする。
  • 7zip展開する際に、展開先のフォルダを「C:」に変える。
  • 上書きしていいか尋ねられるので、「すべてはい」を選択する。
  • Cドライブ下のmsysフォルダを開くと「msys.bat」があるので、デスクトップ等にショートカットを作っておく。
c) Bash を立ち上げるにはどうするか
  • msys.bat」をダブルクリックするとウィンドウが表われ、画面に「$ 」の文字が表示され、待機状態になる(Bashがコマンド入力を待ってる状態)。
  • ビルド作業では、この「$ 」の後ろに続けてコマンドを書いて、エンターを押していくことになる。
  • 実際に入力する際には、$ 自体は入力する必要はなく、その後ろから入力していけばよい。
  • 例:この記事に「$ which lame」とあるときは、実際には「which lameのみ入力し、エンターを押せばいい。
  • 終了する時は、「$ exit」と入力してエンターを押せばいい。

2. QuickTime SDK のインストール(不必要ならインストールしなくてもいい)
  • QuickTime SDKのダウンロードにはApple ID が必要。ここから登録。
  • ここから「quicktimesdk.zip」をダウンロードする。
  • zip展開をし、「QuickTimeSDK.exe」をダブルクリックしてインストールを開始する。
  • 途中でインストール先のフォルダを聞かれるが、「C:\QTSDK」に変える。


3. LAME のビルド
1のc)の手順でBashを立ち上げる。
以下のように入力していき、インストール。
  • $ cd
  • $ wget "http://jaist.dl.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz"
  • $ tar -zxf lame-3.98.4.tar.gz
  • $ cd lame-3.98.4
  • $ sh configure --disable-shared
  • $ make -j3
  • $ make install
  • $ cd ; rm lame-3.98.4.tar.gz


4. FAAC のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ wget "http://jaist.dl.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz"
  • $ tar -zxf faac-1.28.tar.gz
  • $ cd faac-1.28
  • $ sh configure --disable-shared --without-mp4v2
  • $ make -j3
  • $ make install
  • $ cd ; rm faac-1.28.tar.gz


5. FFmpeg のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
  • $ cd ffmpeg
  • $ sh configure --enable-gpl --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --disable-debug --enable-postproc --enable-w32threads --enable-memalign-hack --extra-cflags="-U__STRICT_ANSI__"
  • $ make -j3
  • $ make install
  • $ cd


6. FFmpegSource のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ svn checkout http://ffmpegsource.googlecode.com/svn/trunk/ ffmpegsource
  • $ cd ffmpegsource
  • $ FFMPEG_CFLAGS="-I/usr/local/include" FFMPEG_LIBS="-L/usr/local/lib -lavformat -lavcodec -lpostproc -lswscale -lavcore -lavutil -lm -lz -lbz2" sh configure
  • $ make -j3
  • $ make install
  • $ cd


7. x264_L-SMASH のビルド
以下のように入力していき、インストール。
※2番目の「-O x264_L-SMASH_clone.sh」の「-O」は、「半角ハイフン」と「アルファベットの大文字のオー」。
QuickTime SDKをインストールしていない場合は5番目の最後の「--qtsdk=/C:/QTSDK」を抜く

  • $ cd
  • $ wget "http://up-cat.net/wiki.cgi?action=ATTACH&page=L-SMASH&file=x264_L-SMASH_clone.sh" -O x264_L-SMASH_clone.sh
  • $ sh x264_L-SMASH_clone.sh
  • $ cd x264_L-SMASH
  • $ sh configure --extra-cflags="-I/usr/local/include" --extra="-L/usr/local/lib" --enable-nonfree --qtsdk=/C:/QTSDK
  • $ make -j3
  • $ make install
  • $ cd ; rm x264_L-SMASH_clone.sh

以上でビルド終了です。

※ビルドしたx264の使い方についてはこの記事の最後を参照。


[MacOSXでのビルド方法]

1.ビルド環境構築
a) XcodeTools のインストール
  • Mac OS X Install DVDを入れる。
  • Xcode Tools」フォルダを開く(みつからない場合は「Optional Installs」フォルダの中を探す)。
  • XcodeTools.mpkg」をダブルクリックしてインストールを開始する。
b) Bash を立ち上げるにはどうするか
  • アプリケーション(Applications)」フォルダの中の「ユーティリティ(Utilities)」フォルダを開く。
  • ターミナル(Terminal).appを起動するとウィンドウが表われ、画面に「$ 」の文字が表示され、待機状態になる(Bashがコマンド入力を待ってる状態)。
  • ビルド作業では、この「$ 」の後ろに続けてコマンドを書いて、リターンを押していくことになる。
  • 実際に入力する際には、$ 自体は入力する必要はなく、その後ろから入力していけばよい。
  • 例:この記事に「$ which lame」とあるときは、実際には「which lameのみ入力し、リターンを押せばいい。
  • 終了する時は、「$ exit」と入力してリターンを押せばいい。

※注意点
以下、実際のビルド作業に入るが、注意点を2つ。
  • 記事の中に何度か「curl -O "http://hoge.tar.gz"」のようなものが出てくるが、「curl -O」の「-O」は、「半角ハイフン」と「アルファベットの大文字のオー」。「数字の零」ではないので注意。
  • 記事の中に何度か「sudo make install」というものが出てくる。このコマンドを入力してリターンを押すと、Passwordを求められる。そのときは、管理者パスワードを入力してリターン

2. yasm のビルド
1のb)の手順でBashを立ち上げる。
以下のように入力していき、インストール。
  • $ cd
  • $ curl -O "http://www.tortall.net/projects/yasm/releases/yasm-1.1.0.tar.gz"
  • $ tar -zxf yasm-1.1.0.tar.gz
  • $ cd yasm-1.1.0
  • $ sh configure
  • $ make -j3
  • $ sudo make install
  • $ cd ; rm yasm-1.1.0.tar.gz


3. LAME のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ curl -O "http://jaist.dl.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz"
  • $ tar -zxf lame-3.98.4.tar.gz
  • $ cd lame-3.98.4
  • $ sh configure --disable-shared
  • $ make -j3
  • $ sudo make install
  • $ cd ; rm lame-3.98.4.tar.gz


4. FAAC のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ curl -O "http://jaist.dl.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz"
  • $ tar -zxf faac-1.28.tar.gz
  • $ cd faac-1.28
  • $ sh configure --disable-shared --without-mp4v2
  • $ make -j3
  • $ sudo make install
  • $ cd ; rm faac-1.28.tar.gz


5. FFmpeg のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
  • $ cd ffmpeg
  • $ sh configure --enable-gpl --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --disable-debug --enable-postproc
  • $ make -j3
  • $ sudo make install


6. FFmpegSource のビルド
以下のように入力していき、インストール。
  • $ cd
  • $ svn checkout http://ffmpegsource.googlecode.com/svn/trunk/ ffmpegsource
  • $ cd ffmpegsource
  • $ FFMPEG_CFLAGS="-I/usr/local/include" FFMPEG_LIBS="-L/usr/local/lib -lavformat -lavcodec -lpostproc -lswscale -lavcore -lavutil -lpthread -lm -lz -lbz2" ./configure
  • $ make -j3
  • $ make install
  • $ cd


6.5. Git のビルド

Gitがインストールされていない場合はx264のビルドの前にこの作業が必要。
インストールされているかいないかの確認は以下のようにしてチェックする。
  • $ git
この時gitのヘルプがずらっと表示されたときはそのまま次の手順7へ進む。
「bash: git: command not found」などと表示された場合は以下のようにしてインストール。
  • $ cd
  • $ curl -O "http://kernel.org/pub/software/scm/git/git-1.7.2.3.tar.gz"
  • $ tar -zxf git-1.7.2.3.tar.gz
  • $ cd git-1.7.2.3
  • $ sh configure
  • $ make -j3
  • $ sudo make install
  • $ cd ; rm git-1.7.2.3.tar.gz


7. x264_L-SMASH のビルド
以下のように入力していき、インストール。 
  • $ cd
  • $ curl "http://up-cat.net/wiki.cgi?action=ATTACH&page=L-SMASH&file=x264_L-SMASH_clone.sh" -o x264_L-SMASH_clone.sh
  • $ sh x264_L-SMASH_clone.sh
  • $ cd x264_L-SMASH
  • $ sh configure --extra-cflags="-I/usr/local/include" --extra="-L/usr/local/lib" --enable-nonfree
  • $ make -j3
  • $ make install
  • $ cd ; rm x264_L-SMASH_clone.sh

以上でビルド終了です。



[x264_L-SMASHの使い方]

時間があれば(そして需要があれば)後日また使い方の記事を書きますが、
fullhelpAudioの項目に音声エンコードの方法が詳しく書いてあります。
以下のようにコマンドを入力すれば、見ることができます。
  • $ x264 --fullhelp | less

※おまけ
less(ページャ)の使い方
  • ↓キー1行分」にスクロール
  • スペースキー1ページ分」にスクロール
  • ↑キー1行分」にスクロール
  • bキー1ページ分」にスクロール
  • <キーで文書の「先頭」までスクロール
  • >キーで文書の「末尾」までスクロール
  • /キーに続いてキーワードを入力してエンター(リターン)を押すと前方検索(その後nキーを押すと同じキーワードで続けて検索)
  • ?キーに続いてキーワードを入力してエンター(リターン)を押すと後方検索(その後nキーを押すと同じキーワードで続けて検索)
  • qキーでlessの終了

今回の記事は以上です。
参考になればうれしいです。


Special Thanks
Chikuzen, golgol7777, JEEB, silverfilain, VFR maniac
(alphabetical order)