2005年06月22日

■x264のインストール

■x264のインストール




===訳文開始===

2.2.1.10.4. How can I encode videos using MEncoder and x264?

最新の x264ソースはsubversion クライアントをインストールしてから、次のコマンドを使います。
[[補足 A参照]]
svn co svn://svn.videolan.org/x264/trunk x264


X264のAPIが変更されるとMPlayer ソースはいつであれ、すぐに変更されます。ですから、常にCVS版 MPlayerを使うのがおすすめです。この状況はおそらく、X264が「リリース」されたら変わるでしょう。それまでの間は、x264 は非常に不安定な物と考えてください。これは、x264のプログラミングインターフェイスが変更対象になっているという意味です。

x264 のビルドとインストールは標準的な方法で行います。
./configure && make && sudo make install


これで libx264.a が /usr/local/lib に、そして x264.h は /usr/local/includeにインストールされます。x264 ライブラリとヘッダが標準的な場所にある場合、x264サポート付き MPlayerのビルドは簡単です。一般的な以下のコマンドを実行するだけです。:
./configure && make && sudo make install

configure スクリプトは自動的に必要なx264を探し出します。


===訳文終了===

補足A:
 1)subversion=次世代CVS。リンク集で概要把握
 2)OSX版インストーラをげと
 3)a match in her pocketで「パスを通す」
 4)上記、SVNコマンドに戻る。


補足B:$ ./configure --help
available options:

--help print this message
--enable-avis-input enables avisynth input (win32 only)
--enable-mp4-output enables mp4 output (using gpac)
--enable-vfw compiles the VfW frontend
--enable-pthread enables multithreaded encoding
--enable-debug adds -g, doesn't strip
--enable-visualize enables visualization (X11 only)
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS


※prefixがないが、指定したら行けそう↓。

試験01-01 configure
./configure --enable-mp4-output --enable-pthread --prefix=$HOME/英文名
$HOME/英文名
Platform: PPC
System: MACOSX
avis input: no
mp4 output: yes
pthread: yes
vfw: no
debug: no
visualize: no

You can run 'make' now.

試験01-02 make
中略
error: gpac/m4_author.h: No such file or directory
make: *** [.depend] Error 1

つまり mp4 output (using gpac)が効かない。
どこかでgpacなるもんを入手する必要がある。深入りしないでオミットした。

試験02-01 configure
$ ./configure --enable-pthread --prefix=$HOME/英文名
Platform: PPC
System: MACOSX
avis input: no
mp4 output: no
pthread: yes
vfw: no
debug: no
visualize: no

You can run 'make' now.

これはmake失敗。
その後、いくつかconfigureオプションを試すも全てmakeで失敗。オプション抜きですらコケた。
./configureは一回やったらやり直しの際になにか注意しないと行けないのかも知れない。
svnからやり直して、上記、試験02-01の.configureオプションで$HOME/英文名にインストール成功。

続いてMPlayer-20050522でconfigure実験したが、認識しない。
configure.logで検索すると、「libx264.a is out of date」とあった。
これは訳文中にある通り、バージョンの不整合だろうと考え、
新たにMPlayer-20050621を落としてconfigure実験したが、認識しない。
configure.logは同じく「libx264.a is out of date」。良く読むと、
============ Checking for x264 ============
#include
#if X264_BUILD < 29
#error We do not support old versions of x264. Get the latest from SVN.
int main(void) { x264_encoder_open((void*)0); return 0; }
cc /tmp/mplayer-conf-31861-1947.c -o /tmp/mplayer-conf-31412-1947.o -I/Users/USERNAME/適当な英文名/include/ -L/Users/USERNAME/適当な英文名/lib/ -lx264 -lm
/usr/bin/ld: table of contents for archive: /Users/USERNAME/適当な英文名/lib//libx264.a is out of date; rerun ranlib(1) (can't load from it)

x264が古いぜっと?
もう一回SVNをやってみる。
$ svn co svn://svn.videolan.org/x264/trunk x264
A x264/tools/q_matrix_jvt.cfg
Checked out revision 270.

 最初のソースを消してないので、バージョン一緒だよと言っているのだらふか、、、[追記]
、、、、MPlayer-current.tar.bz2 と、SVNのx264のバージョンが巧く整合するタイミングがあるのか?
 問題の切り分けってヤツをしなければ。
 /USERNAME/適当な英文名/を一旦あきらめるベキだろう。ど素人としては。

 *上記訳文の通り、x264のリリース版はまだ無いため、最新のCVS版mencoder+最新のSVN版x264の組み合わせでなければ動かない。但し、この場合の原因は別だった。


[追記]コメント欄で教えて頂いています。

libx264.a is out of date の件はターミナルで
sudo ranlib $(prefix)/libx264.a
とするとOKです。(/usr/local/libとかにインストールした場合)

との事。
これはビルドでインストールしたライブラリの保存場所をシステムキャッシュに登録するコマンド。
その後、MPlayer/MEncoder用に、x264以外にfaacなど多くの外部ライブラリ入れたため、一気に
sudo ranlib /usr/local/lib/*.*

(/usr/local/libとかにインストールした場合)
を使った。
*.*は/usr/local/lib/以下にある全てのファイルという意味。
ここには拡張子.a以外のファイルも沢山入るので怒られるが、問題はおきないようだ。




posted by ばる at 00:05| Comment(5) | TrackBack(0) | mencoder[ビルド] | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
はじめまして、googleで彷徨ってたらたどりつきました。以前、僕も同じような壁にぶちあたりましたが、
libx264.a is out of date の件はターミナルで
sudo ranlib $(prefix)/libx264.a とするとOKです。(/usr/local/libとかにインストールした場合)
また、gpacはバージョン0.3.0がでています。Tiger上でコンパイルできますが、多分make installが通りません。これは、Makefileに細工をすることで解決できます。
h.264は激重ですが、画質はダントツなので是非使いたいところですが、僕はmencoderの使い方がわかってないようで、うまくできません。また時々のぞかせていただきます。
Posted by esperance at 2005年06月22日 01:19
おおお?
ありがとうございます!!
mencoderの使い方については当方もわかっているとは言い難いのですが、、、^^;
カテゴリ「圧縮日記」が実例集になってます。
一応、基礎はこちらで書いてます。
http://www.geocities.jp/howtoffmpegx/
なにかのご参考になれば。
Posted by ばる at 2005年06月22日 11:22
こんばんは。基礎といいますか、情熱の結晶のような素晴らしいhowtoを拝見させて頂きました。
僕も、ffmpegとかいろいろかまっていて、h.264+aacの最強mp4を目指しています。発展途上なのか、マックのせいなのかうまくいかないことが多いのですが、Handbrakeのような手軽さで、あの高画質なmp4を見せられては、なかなかxvid+mp3 aviというのも、そろそろどうかなと考えさせられてしまいます。ffmpegで、h.264+aac mp4が作成できればいいんですけどね。(一応エンコードはできました。ただし、ffmpegがh.264エンコードをサポートしていないので、できたファイルはQuickTimeで再生はできますが、画面が真っ白です。mencoderは設定パラメータが複雑すぎるし、指定方法がわからずお手上げです。)
最近は、HandbrakeのLPCMの音飛びの原因を探るべく、ソースを眺めていますが、基礎知識不足で進んでいません。あの致命的な音飛びさえなければ、、、って感じですね。beta3で直したと作者の方は言ってますが、なおってないようですね。ちなみに、HandbrakeのCVSもビルドしてみたりもしています。あのGUI版のほかに、HBTestというターミナルで動作するソフトも作成されます。CVS版は、最新のx.264を自動的に取り込んできてコンパイルするようで、エンコード速度も公開されているものより若干速くなっているようです。
まだ、この後もいろいろ(faacとかxvidなどに)トライされるようですが、ご武運をお祈りしています。(例によって僕の環境ではコンパイルに苦しみました。特にfaac。こいつは強敵でした。)
また何かにつまづいたりしたときにお役に立てれば光栄です。しばらくいろいろと勉強させていただきますね、、、
Posted by esperance at 2005年06月22日 22:51
ややや、アドバイス有り難うございます。
TVメインでなければhandbrakeで済ませたいのですが^^;
Cもターミナルもさっぱりなんで、いろいろわやです。

以下、ちょっとメモを置かせてもらいます。
Posted by ばる at 2005年06月25日 02:58
■sudo ranlibとは?

ranlib - 書庫のインデックスを作成する
ranlib [-v|-V] archive

ranlib は書庫 (archive) の内容に関するインデックスを作成し、その書庫に書き込む。インデックスはアーカイブのメンバー(リロケータブルなオブジェクトファイル)で定義されているシンボルを全てリストする。
このリストを見るには `nm -s' または `nm --print-armap' を用いれば良い。
このようなインデックスを持つ書庫は、ライブラリとしてリンクするときの動作が高速になる。またライブラリの中のルーチンが(書庫内部での位置には関係なく)お互いをコールすることができるようになる。
GNU ranlib プログラムは GNU ar の別名である。 ranlib を実行するのと `ar -s' とは完全に等価である。
Posted by ばる at 2005年06月25日 02:58
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

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


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

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

この広告は1年以上新しい記事の投稿がないブログに表示されております。