2015年1月9日金曜日

Linuxでのx265のビルド

Linuxでのx265のビルド

仕事でx265のEncodeが必要となりました。
Windows版はバイナリを拾ってきたのですが、諸事情によりLinux版が必要となりました。

$ hg clone https://bitbucket.org/multicoreware/x265
$ cd x265/build/linux
$ ./make-Makefiles.bash

10bit対応版にする必要があるのでHIGH_BIT_DEPTHの項目ににカーソルを合わせてEnterを押してONにする。

enter image description here

#設定を反映
$ c
#quit
$ q
$ make clean
$ make
$ make install

以下のエラーがでた。
[ 64%] Built target common
[ 89%] Built target encoder
[ 89%] Built target x265-shared
[100%] Built target cli
[100%] Built target x265-static
Install the project…
– Install configuration: “Release”
– Installing: /usr/local/lib/libx265.a
CMake Error at cmake_install.cmake:36 (FILE):
file INSTALL cannot copy file “/home/abe/x265/build/linux/libx265.a” to
“/usr/local/lib/libx265.a”.

make: * [install] エラー 1

$ sudo make install

で解決。

バージョンチェックしたがあれ?なにかエラーがでてる。
sudo make installがダメだった?

$ x265 --version

x265: error while loading shared libraries: libx265.so.40: cannot open shared object file: No such file or directory

とりあえずx265自身があるパスで

$ ./x265 --version

以下のように意図どおりだったので、上記の問題はまた今度ということで。
x265 [info]: HEVC encoder version 1.4+273-4659aa3e33bf
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 16bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2

追記

x265: error while loading shared libraries: libx265.so.40: cannot open shared object file: No such file or directoryに関してどんな動的ライブラリ・共有ライブラリとしてリンクしているのかを確認した。

$ ldd x265
    linux-vdso.so.1 =>  (0x00007fff5f6ea000)
    libx265.so.40 => /home/user/x265/build/linux/libx265.so.40 (0x00007f27f30ba000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f27f2e83000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f27f2b73000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f27f27ae000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f27f24a8000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f27f3538000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f27f2290000)
$ whereis libx265.so.40

インストールされている側でlddを確認したところ以下のようになってました。
/usr/local/bin $ ldd x265
linux-vdso.so.1 => (0x00007fff487d3000)
libx265.so.40 => not found

結論

以下のコマンドでこの問題は改善しました。
Shared libraryがインストールされる場合はこのコマンドが必要ということですね。

$ sudo ldconfig

調べてみると以下でも改善とのことでした。
1. vi ~/.bashrc
2. bashrcに以下を記載

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

参考:
x265
ArchLinuxでx265を試してみた
OpenSSLのインストール

0 件のコメント :

コメントを投稿