2010年07月27日

x264のコンパイル&インストール (make fprofiled)

Yasmを、あらかじめインストールしておきます。

x264は、以下の場所にあります。
http://www.videolan.org/developers/x264.html

x264の最新情報は、ここでチェックしましょう。
http://x264.nl/

2013/05/30 追記
現在は、VideoLANのページにリダイレクトされます。
最新版は、こちらでチェックしてください。
http://git.videolan.org/?p=x264.git;a=summary


Gitがインストールされていれば、以下のようにして、ソースファイルをダウンロードできます。
$ git clone git://git.videolan.org/x264.git

Gitがインストールされていない場合でも、とりあえず、daily tarballのソースファイルをダウンロードすればコンパイルできます。

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
x264-snapshot-20100725-2245.tar.bz2
を、適当なディレクトリに保存します。

毎日更新されていて、日付がファイル名になっていますので、その時点でのファイル名に読み替えてください。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xjf x264-snapshot-20100725-2245.tar.bz2
$ cd x264-snapshot-20100725-2245

以下のパッチを適用します。
x264-pthreads-20100717.diff

2011/01/05 追記
PTW32_STATIC_LIBフラグは、最新のpthreadsライブラリでは不要になったため、x264へのパッチも不要になりました。
$ patch -p1 < x264-pthreads-20101216.diff


次に、make fprofiledするための、適当なサンプル動画を用意します。
自分で用意するのがめんどうな場合は、

Xiph.org Test Media
http://media.xiph.org/
とか、
http://media.xiph.org/video/derf/
辺りから、拡張子がy4mのものをダウンロードして使用します。

私の場合、
http://media.xiph.org/video/derf/
から、
park_joy (16:9 | 500 frames | readme) の、4:2:0 (660 MB) の所にある
park_joy_420_720p50.y4m
をダウンロードして、そのまま使用しています。

携帯動画変換君を使ってサンプル動画を作成する場合は、適当なフレーム数を切り出して、フォーマットを「yuv4mpegpipe」にすれば良いです。
以下は、動画の3分00秒目から500フレーム切り出して「sample.y4m」に変換する設定です。
音声は無しにしています。

2013/10/06 追記
「-ss」を「-i」の前にすると、「-ss」で指定した時間までの待ち時間がなくなります。

Title=x264 fprofiled sample
Command0=""<%AppPath%>\cores\ffmpeg" -y -ss 00:03:00 -i "<%InputFile%>" -an -vframes 500 -f yuv4mpegpipe "<%OutputPath%>\sample.y4m""


サンプル動画が準備できたら、

$ ./configure --prefix=/mingw --enable-static
$ make fprofiled VIDS="park_joy_420_720p50.y4m"
$ make install

以上で終了です。


【補足】
ただmakeしたときのlibx264.aのサイズは約1,000KB、make fprofiledしたときのlibx264.aのサイズは830KB前後になりました。

私が使用したサンプル動画は720x480pですが、映像サイズを大きく(1920x1080pなど)すると、libx264.aのサイズが小さくなる傾向があるようです。

フレーム数は100としましたが、500などに増やすと、若干libx264.aのサイズが小さくなりました。
ですが、時間がかかるわりに大して違わなかったため、フレーム数は100にしました。

サンプル動画はどうするのが最適なのか、ご存じの方がいらっしゃったら、教えていただけるとありがたいです。

2010/12/17 追記
How to Compile x264 on 32 & 64 Bit Windows
http://doom10.org/index.php?topic=26.msg483#msg483
によると、

What video you use doesn't matter as long as it is a real video (random noise or a static image will probably not give accurate results).
サンプル動画は、実写動画であれば何を使っても同じようなものなので、気にしなくて良い。
ランダムノイズや静止画像では、正しい結果が得られないでしょう。

という感じでしょうか。


【更新履歴】を見る
posted by あべちん at 04:49 | Comment(3) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
どこかのスレッドでDS氏(ダークシカリ)は、”make fprofiledの素材は何でも良い”と言ってた気がします。
自分も色々と試してみましたが、エンコードパフォーマンスに影響がなかったので320x240でやってます。(バイナリサイズは気にしないので)
Posted by X5-452 at 2010年07月27日 18:11
make fprofiledをするのとしないとでは、かなりエンコードパフォーマンスが違うので、make fprofiledは必須だと思います。
Posted by X5-452 at 2010年07月27日 18:20
X5-452さん、こんにちは。管理人です。

コメントありがとうございます。

make fprofiled の意味がよくわからず、最近までスルーしておりましたが、今度から採用することにしました。

素材によって、出来上がるバイナリのサイズが変わるので気になっていたのですが、Dark Shikari氏がそう言っていたのなら、気にしなくてよさそうですね。

ありがとうございました。
Posted by あべちん at 2010年07月29日 02:11
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/39839442
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック