09
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
LATEST ENTRY
CATEGORY
ARCHIVE
PROFILE
SEARCH
RECENT COMMENT
  • エクセルファイルのパスワードを忘れたら・・・
    里奈 (09/09)
  • 【QUICKFIX】 FX自動売買への道 27 【接続時の仕様】
    mrsg (07/29)
  • 【QUICKFIX】 FX自動売買への道 11 【デモ環境への接続】
    大工の源さん (05/01)
  • 【QUICKFIX】 FX自動売買への道 19 【レート情報の取得(MarketDataRequest)】
    まこ (04/11)
  • 【QUICKFIX】 FX自動売買への道 19 【レート情報の取得(MarketDataRequest)】
    ぼん (04/11)
  • Excel の パスワード解除 (VBS版)
    おさる (01/05)
  • Excel の パスワード解除 (VBS版)
    おさる (01/05)
  • エクセルファイルのパスワードを忘れたら・・・
    ヤナト (07/07)
  • ffmpeg+libx264+libfaac の static ビルド
    ひげお (03/17)
  • TSの2重音声問題解決
    K (10/14)
MOBILE
qrcode
OTHERS
<< TSの2重音声問題解決 | top | 【画面なし】 VirtualBox を CUI でインストールして VRDP 接続できる仮想マシンを作る 【VRDP】 >>
ffmpeg+libx264+libfaac の static ビルド
ちょっとうまくいかないことがあったので記録として残しておきます。

 
ちなみにこの方法で行けば、ldconfig とか不要です。


環境:Redhat 5系(CentOS5系でも同じだと思いまふ)

うまくいかなかったときの ffmpeg のコンフィグ(./configure)結果
./configure                 ¥
--prefix=/usr/local/src/f2  ¥
--disable-ffplay            ¥
--disable-ffserver          ¥
--disable-shared            ¥
--enable-static             ¥
--enable-gpl                ¥
--enable-libx264            ¥
--enable-libfaac            ¥
--enable-nonfree            ¥
--extra-cflags="-I/usr/local/src/f2/include "  ¥
--extra-ldflags="-L/usr/local/src/f2/lib "
        ERROR: libx264 not found

        If you think configure made a mistake, make sure you are using the latest
        version from Git.  If the latest version fails, report the problem to the
        ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
        Include the log file "config.log" produced by configure as this will help
        solving the problem.


libx264 が見つからん!って怒られちゃってます。。

ちなみにちゃんとファイルがあるかを見てみると
find /usr/local/src/f2/lib
        /usr/local/src/f2/lib
        /usr/local/src/f2/lib/pkgconfig
        /usr/local/src/f2/lib/pkgconfig/x264.pc
        /usr/local/src/f2/lib/libfaac.la
        /usr/local/src/f2/lib/libfaac.a
        /usr/local/src/f2/lib/libx264.a
        /usr/local/src/f2/lib/libyasm.a

ちゃーんと指定したところにあるんですよね。。


ログを見ると
tail config.log
        opencl.c:(.text+0x8fd): undefined reference to `dlclose'
        /usr/local/src/f2/lib/libx264.a(opencl.o): In function `x264_opencl_lookahead_init':
        opencl.c:(.text+0x1881): undefined reference to `dlopen'
        opencl.c:(.text+0x189b): undefined reference to `dlsym'
        opencl.c:(.text+0x18ad): undefined reference to `dlsym'
        opencl.c:(.text+0x18c1): undefined reference to `dlsym'
        opencl.c:(.text+0x18d5): undefined reference to `dlsym'
        opencl.c:(.text+0x1914): undefined reference to `dlclose'
        collect2: ld returned 1 exit status
        ERROR: libx264 not found


これ、Open CL(opencl.c) ってやつが悪さをしていたようです。。
これが何かというと・・詳しくは Wikipedia様を参照ということで
http://ja.wikipedia.org/wiki/OpenCL



で、正しい?対処方法を載せておきます。
以下の手順通りにコンパイルしとけば大丈夫なはずです。


手順
1.Yasm のコンパイル&インストール
2.libx264 のコンパイル&インストール
3.libfaac のコンパイル&インストール
4.ffmpeg のコンパイル&インストール


1.Yasm
# mkdir  /usr/local/src/f2
# mkdir  /usr/local/src/f2/10.yasm
# cd     /usr/local/src/f2/10.yasm

ソースコードをダウンロード
#  wget  http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

ダウンロードしたソースコードを展開
#  tar  xvfz  yasm-1.2.0.tar.gz

自動設定
#  cd  yasm-1.2.0
#  ./configure   --prefix=/usr/local/src/f2

コンパイル&インストール
#  make
#  make  install

確認
#  find  /usr/local/src/f2/bin  -type f
        /usr/local/src/f2/bin/vsyasm
        /usr/local/src/f2/bin/ytasm
        /usr/local/src/f2/bin/yasm



2.libx264
#  mkdir  /usr/local/src/f2/20.libx264
#  cd     /usr/local/src/f2/20.libx264

ソースコードをダウンロード
#  wget  ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2

ダウンロードしたソースコードを展開
#  tar  xvfj   last_x264.tar.bz2

自動設定
#  cd  x264-snapshot-20140518-2245
#  export   PATH=/usr/local/src/f2/bin:$PATH
#  ./configure   --prefix=/usr/local/src/f2   --enable-static  --disable-opencl
        platform:      X86
        system:        LINUX
        cli:           yes
        libx264:       internal
        shared:        no
        static:        yes
        asm:           yes
        interlaced:    yes
        avs:           avxsynth
        lavf:          no
        ffms:          no
        mp4:           no
        gpl:           yes
        thread:        posix

        opencl:        no
        filters:       crop select_every
        debug:         no
        gprof:         no
        strip:         no
        PIC:           no
        bit depth:     8
        chroma format: all

        You can run 'make' or 'make fprofiled' now.


コンパイル&インストール
#  make
#  make  install
        install -d /usr/local/src/f2/bin
        install x264 /usr/local/src/f2/bin
        install -d /usr/local/src/f2/include
        install -d /usr/local/src/f2/lib
        install -d /usr/local/src/f2/lib/pkgconfig
        install -m 644 ./x264.h /usr/local/src/f2/include
        install -m 644 x264_config.h /usr/local/src/f2/include
        install -m 644 x264.pc /usr/local/src/f2/lib/pkgconfig
        install -m 644 libx264.a /usr/local/src/f2/lib
        ranlib /usr/local/src/f2/lib/libx264.a


確認
#  find  /usr/local/src/f2/bin  -type  f
        /usr/local/src/f2/bin/vsyasm
        /usr/local/src/f2/bin/ytasm
        /usr/local/src/f2/bin/yasm
        /usr/local/src/f2/bin/x264

#  find   /usr/local/src/f2/lib  -type  f
        /usr/local/src/f2/lib/pkgconfig/x264.pc
        /usr/local/src/f2/lib/libx264.a

        /usr/local/src/f2/lib/libyasm.a


3.libfaac
#  mkdir  /usr/local/src/f2/30.libfaac
#  cd     /usr/local/src/f2/30.libfaac

ソースコードをダウンロード
#  wget  http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.bz2

ダウンロードしたソースコードを展開
#  tar  xvfj   faac-1.28.tar.bz2

自動設定
#  cd  faac-1.28
#  ./configure   --prefix=/usr/local/src/f2   --enable-static  --disable-shared  --with-mp4v2

コンパイル&インストール
#  make
#  make  install

確認
find  /usr/local/src/f2/lib  -type  f
        /usr/local/src/f2/lib/pkgconfig/x264.pc
        /usr/local/src/f2/lib/libfaac.la
        /usr/local/src/f2/lib/libfaac.a

        /usr/local/src/f2/lib/libx264.a
        /usr/local/src/f2/lib/libyasm.a



4.ffmpeg
#  mkdir  /usr/local/src/f2/40.ffmpeg
#  cd     /usr/local/src/f2/40.ffmpeg

ソースコードをダウンロード
#  wget  http://www.ffmpeg.org/releases/ffmpeg-2.2.2.tar.bz2

ダウンロードしたソースコードを展開
#  tar  xvfj  ffmpeg-2.2.2.tar.bz2

自動設定
#  cd  ffmpeg-2.2.2
#  ./configure              ¥
--prefix=/usr/local/src/f2  ¥
--disable-ffplay            ¥
--disable-ffserver          ¥
--disable-shared            ¥
--enable-static             ¥
--enable-gpl                ¥
--enable-libx264            ¥
--enable-libfaac            ¥
--enable-nonfree            ¥
--extra-cflags="-I/usr/local/src/f2/include "  ¥
--extra-ldflags="-L/usr/local/src/f2/lib "

コンパイル&インストール
#  make
#  make  install

確認
#  find  /usr/local/src/f2/bin   -type  f
        /usr/local/src/f2/bin/vsyasm
        /usr/local/src/f2/bin/ytasm
        /usr/local/src/f2/bin/faac
        /usr/local/src/f2/bin/ffmpeg
        /usr/local/src/f2/bin/yasm
        /usr/local/src/f2/bin/ffprobe
        /usr/local/src/f2/bin/x264


Static になってるか確認
ldd  /usr/local/src/f2/bin/ffmpeg
        linux-gate.so.1 =>  (0x006bf000)
        libasound.so.2 => /lib/libasound.so.2 (0x0040b000)
        libm.so.6 => /lib/libm.so.6 (0x00684000)
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x0407a000)
        libz.so.1 => /usr/lib/libz.so.1 (0x006d1000)
        librt.so.1 => /lib/librt.so.1 (0x006e6000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00110000)
        libc.so.6 => /lib/libc.so.6 (0x0052a000)
        libdl.so.2 => /lib/libdl.so.2 (0x006af000)
        /lib/ld-linux.so.2 (0x0050b000)

libx264 と libfaac が存在しないので、Static ビルド完成です♪



ちなみに、static ではなく、 shared な場合はこんな感じになっちゃいます。。
ldd  /usr/local/src/f2/bin/ffmpeg
        linux-gate.so.1 =>  (0x00400000)
        libavdevice.so.55 => /usr/local/src/f2/lib/libavdevice.so.55 (0x00bbc000)
        libavfilter.so.4 => /usr/local/src/f2/lib/libavfilter.so.4 (0x0098a000)
        libavformat.so.55 => /usr/local/src/f2/lib/libavformat.so.55 (0x00110000)
        libavcodec.so.55 => /usr/local/src/f2/lib/libavcodec.so.55 (0x00bca000)
        libpostproc.so.52 => /usr/local/src/f2/lib/libpostproc.so.52 (0x0048e000)
        libswresample.so.0 => /usr/local/src/f2/lib/libswresample.so.0 (0x0039b000)
        libswscale.so.2 => /usr/local/src/f2/lib/libswscale.so.2 (0x0029d000)
        libavutil.so.52 => /usr/local/src/f2/lib/libavutil.so.52 (0x0031a000)
        libm.so.6 => /lib/libm.so.6 (0x00684000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x006b6000)
        libc.so.6 => /lib/libc.so.6 (0x0052a000)
        libasound.so.2 => /lib/libasound.so.2 (0x006cf000)
        librt.so.1 => /lib/librt.so.1 (0x00376000)
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x0407a000)
        libz.so.1 => /usr/lib/libz.so.1 (0x0037f000)
★      libx264.so.142 => /usr/local/src/f2/lib/libx264.so.142 (0x007ae000)
★      libfaac.so.0 => /usr/local/src/f2/lib/libfaac.so.0 (0x003b3000)

        /lib/ld-linux.so.2 (0x0050b000)
        libdl.so.2 => /lib/libdl.so.2 (0x006af000)
 
 
まこ | - | 08:26 | comments(1) | trackbacks(0) |
スポンサーサイト
スポンサードリンク | - | 08:26 | - | - |
Comment
同じようなエラーが出てこちらにたどり着きました。
が、ダメでした(T_T)

posted by ひげお ,2015/03/17 7:17 PM










Trackback
URL: