前回Raspberry Pi 2上でlibx265をビルドしました。その続きでlibx265をffmpegにリンクします。
必要パッケージ
1 | sudo apt-get install autoconf build-essential checkinstall git |
もう入ってたらこのコマンドはいらないです。
ビルド
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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はめちゃくちゃ時間がかかります
ライブラリをリンク
このままでは
1 2 3 4 5 6 7 8 9 10 | $ 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) |
1 2 | ./ffmpeg -version ./ffmpeg: error while loading shared libraries: libx265.so.79: cannot open shared object file: No such file or directory |
libx265.soがねーよ!と怒られる。
ライブラリをリンクする
1 | sudo nano /etc/ld.so.conf |
最後の行に以下の1行を書き込む
1 | /usr/local/lib |
ライブラリ更新
1 | sudo ldconfig |
ffmpeg でx265のライブラリが見えるように!
1 2 3 | ./ffmpeg -codecs | grep 265 #####省略##### DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 ) |
1 2 3 4 5 6 7 8 9 10 11 12 | 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) |
インストール
1 | sudo make install |
お疲れ様でした。
時間ができたらRaspberry Pi 2でのHEVCエンコードパフォーマンスの測定をしてみたいと思います。