⚠この記事はブログ移転前のアーカイブです
前回Raspberry Pi 2上でlibx265をビルドしました。その続きでlibx265をffmpegにリンクします。
必要パッケージ
sudo apt-get install autoconf build-essential checkinstall git
もう入ってたらこのコマンドはいらないです。
ビルド
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg ./configure --prefix=/usr/local --enable-gpl \ --enable-version3 --enable-nonfree \ --enable-static --disable-shared \ --enable-libx265 \ --extra-cflags="-I/usr/local/include -I/usr/include" \ --extra-ldflags="-L/usr/local/lib" \ --enable-memalign-hack \ --pkg-config-flags=--static make
configureはこれに加えて好きなオプションを加えてください。makeはめちゃくちゃ時間がかかります
ライブラリをリンク
このままでは
$ ldd ./ffmpeg /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0x76f1d000) libx265.so.79 => not found libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76e9d000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76e8e000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76e70000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76e48000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76e28000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76cf8000) /lib/ld-linux-armhf.so.3 (0x76f2a000)
./ffmpeg -version ./ffmpeg: error while loading shared libraries: libx265.so.79: cannot open shared object file: No such file or directory
libx265.soがねーよ!と怒られる。
ライブラリをリンクする
sudo nano /etc/ld.so.conf
最後の行に以下の1行を書き込む
/usr/local/lib
ライブラリ更新
sudo ldconfig
ffmpeg でx265のライブラリが見えるように!
./ffmpeg -codecs | grep 265 #####省略##### DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 )
ldd ./ffmpeg /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0x76ef1000) libx265.so.79 => /usr/local/lib/libx265.so.79 (0x76d76000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76d05000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x76cf6000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76cd8000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76cb0000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76c90000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76b60000) libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76b55000) libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x76a83000) /lib/ld-linux-armhf.so.3 (0x76efe000)
インストール
sudo make install
お疲れ様でした。
時間ができたらRaspberry Pi 2でのHEVCエンコードパフォーマンスの測定をしてみたいと思います。