NEXT | PAGE-SELECT | PREV

CentOS5.2で今のところ最新のffmpeg r15845をコンパイル


このエントリーをはてなブックマークに追加


20081117-ffmpeg-logo.png


追記:最新記事。
  • CentOS LinuxにWebM/VP8組込みのFFmpegをインストール 2010/06/26




  • 作業マシンのOSを再インストールしてCentOS 5.2 x86_64にしました。今までの環境をコピーして使おうと思ったのですが、まっさらな新しい環境はなかなか手に入らないので、ついでに最新のffmpegをコンパイルしました。その備忘録です。

    前提条件

    • CentOS 5.2 x86_64を利用
    • OSはほぼフルインストール
    • gccはCentOS5.2付属のgcc4.1.2を利用 (最新のgcc4.3.2は今回は使わない)
    • 普通に/usr/localにインストール
    • 追加ライブラリは最低限H.264とFLVとxvidが扱えればよい (全部入りは面倒)
    • x264でmp4コンテナを利用可能にする
    • 執筆時(2008年11月17日時点)の最新状態にする
    使ったソフトウエア、ライブラリ
     - faac-1.26.tar.gz              (LC-AACのencode/decode)
     - faad2-2.6.1.tar.gz            (HE-AACのdecode)
     - lame-398-2.tar.gz             (MP3のencode/decode)
     - yasm-0.7.2.tar.gz             (x264の高速化)
     - xvidcore-1.1.3.tar.gz         (xvidのencode/decode)
     - git-1.6.0.4.tar.bz2          (バージョン管理ソフト、x264の最新版のDLに必要)
     - gpac-0.4.4.tar.gz            (MP4コンテナを作るのに必要)
     - x264 r1028                   (H.264のencode/decode)
     - ffmpeg r15845                 (FFMPEG 本体)
    




    事前準備

    ・上記のライブラリを全部ダウンロード
    ・ldのパスだけ通しておく
    # echo  "/usr/local/lib" >> /etc/ld.so.conf
    


    git

    CentOS5.2にはGitが入ってないのでインストール。gitはなくてもいいけど、gitがないとx264の最新版がダウンロードしにくい

    # bzip2 -dc git-1.6.0.4.tar.bz2 | tar xvf -
    # cd git-1.6.0.4
    # ./configure
    # make
    # make install
    

    yasm

    yasmがないと、x264が激遅になる。
    # gzip -dc yasm-0.7.2.tar.gz | tar xvf -
    # cd yasm-0.7.2
    # ./configure
    # make
    # make install
    # ldconfig -v
    


    xvid

    xvidやdivxのAVIファイルを作るのに便利。
    # gzip -dc xvidcore-1.1.3.tar.gz | tar xvf -
    # cd xvidcore-1.1.3
    # cd build/
    # cd generic/
    # ./bootstrap.sh
    # ./configure
    # make
    # make install
    


    gpac

    x264でmp4コンテナを扱うときに必須
    # gzip -dc gpac-0.4.4.tar.gz | tar xvf -
    # cd gpac
    # chmod 755 configure
    # vi src/utils/os_net.c   (u_long という型を unsigned long int に変更)
    # ./configure
    # make lib
    # make install-lib
    


    faac

    AAC-LCのエンコード、デコード
    
    # gzip -dc faac-1.26.tar.gz | tar xvf -
    # cd faac
    # ./bootstrap
    # ./configure
    # make
    # make install
    


    faad

    HE-AACのデコードに必要
    # gzip -dc faad2-2.6.1.tar.gz | tar xvf -
    # cd faad2
    # ./bootstrap
    # ./configure
    # make
    # make install
    


    mp3lame

    MP3をエンコード、デコードするのに必要
    # gzip -dc lame-398-2.tar.gz | tar xvf -
    # cd lame-398-2
    # ./configure
    # make
    # make install
    


    x264

    H.264のエンコードに必要
    MP4コンテナを扱うときは、gpacが必要。最新版をDLするにはgitが必要

    # git clone git://git.videolan.org/x264.git x264
    # cd x264/
    # ./configure --enable-mp4-output --enable-shared
    # make
    # make install
    # ldconfig -v
    


    ffmpeg

    最新版をsvnでDLして、コンパイル。追加ライブラリは少ないので引数も少なめ。
    # svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
    # cd ffmpeg/
    # ./configure --enable-libfaac --enable-libfaad --enable-libmp3lame \
    --enable-libxvid --enable-libx264 --disable-ffplay --disable-ffserver \
    --enable-static --disable-shared --enable-gpl --enable-pthreads
    # make
    # make install
    # ldd /usr/local/bin/ffmpeg
            libz.so.1 => /usr/lib64/libz.so.1 (0x0000003919a00000)
            libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x000000392c000000)
            libm.so.6 => /lib64/libm.so.6 (0x0000003918e00000)
            libdl.so.2 => /lib64/libdl.so.2 (0x0000003919200000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003919600000)
            libc.so.6 => /lib64/libc.so.6 (0x0000003918a00000)
            /lib64/ld-linux-x86-64.so.2 (0x0000003918600000)
    


    これで、とりあえずコンパイルだけは終了。実際ちゃんと動くかまではまだ確認してない。
    コンパイル時に最適化オプションをいじくればもう少し速くなるかも。
    あと、x264とかmp3とかのlibがstaticのバイナリを作るには、本当はこれに少しおまじないが必要で面倒だったけど、なんとか出来ました。sharedのままで良いならこの方法でも無問題かな。


    (追記)一応、64bitバイナリです。他のマシンにコピーしても動いたから多分staticになってると思う
    http://kenknown.web.fc2.com/blog/2008/200811/1117/ffmpeg.centos52.x86-64.r15845.static01.tgz



    カテゴリ【知ったか考察―Linux小技】
    【関連記事】




    このエントリーをはてなブックマークに追加





    このカテゴリの最新記事一覧


    | ―Linux | 22時30分 | comments:2 | trackbacks:0 | TOP↑

    参考になりました。

    ありがとう。
    Darwing Streaming Serverを使うときにffmpegが必要になったので、参考になりました。

    | tkhisan | 2009/03/27 17:26 | URL |

    Re: 参考になりました。

    tkhisan、結構適当な記事でしたが、ご参考になったのであれば何よりです!

    | kenchan | 2009/03/28 08:13 | URL |















    非公開コメント

    http://kenknown.blog42.fc2.com/tb.php/132-3bce57ee

    ≪ NEXT | PAGE-SELECT | PREV ≫