Compile FFMPEG x265 HEVC

Posted by techshoot on February 12, 2015

Tutorial ini dibuat untuk keperluan pribadi dengan serviio sebagai DLNA Server di ubuntu 12.04 dan kebetulan ffmpeg yang terinstall tidak support x265 atau HEVC. Oleh karena itu dengan modal nekat dan google akhirnya bisa juga compile nya di ffmpeg terbaru.

Pada saat tutorial ini dibuat linux yang dipakai adalah Ubuntu 12.04 dan Serviio 1.5, untuk build x265/HEVC dibutuhkan beberapa hal yang harus terpenuhi yaitu cmake minimal 2.8.8 dan yasm minimal 1.2, di ubuntu 12.04 versi yang ada di repository tidak memenuhi kriteria oleh karena itu kita harus melakukan compile versi tersebut.

Pertama - tama uninstall terlebih dahulu ffmpeg yang lama.

sudo apt-get remove ffmpeg x264 libx264-dev libvpx-dev librtmp0 librtmp-dev

NOTE :

Jika pada saat melakukan remove jumlahnya berkisar 500 Mb silakan di cancel dan hilangkan librtmp0 dari command diatas dan jalankan kembali command diatas.

Install tools yang diperlukan.

sudo apt-get update
sudo apt-get install build-essential checkinstall git libfaac-dev libjack-jackd2-dev \
  libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \
  libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html zlib1g-dev \
  libssl1.0.0 libssl-dev libxvidcore-dev libxvidcore4 libass-dev cmake mercurial

Build dan Install YASM

Rekomendasi yasm yang digunakan adalah 1.2 ke atas, di tutorial ini yang digunakan adalah yang terakhir yaitu yasm 1.3.

cd ~
mkdir src
cd src
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
sudo checkinstall --pkgname=yasm --pkgversion="1.3.0" --backup=no \
  --deldoc=yes --fstrans=no --default

Build dan Install CMAKE

Rekomendasi cmake yang digunakan adalah minimal 2.8.8 ke atas, di tutorial ini yang digunakan adalah yang terakhir yaitu cmake 3.1.2.

cd ~/src
wget http://www.cmake.org/files/v3.1/cmake-3.1.2.tar.gz
tar xzvf cmake-3.1.2.tar.gz
cd cmake-3.1.2
mkdir _build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
sudo ldconfig

cek versinya dengan command berikut

cmake --version

Build dan Install x264

cd ~/src
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static --disable-opencl
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default

check apabila telah terinstall x264

x264 --help

kalau sudah keluar helpnya maka terinstall dan tidak ada masalah

Build dan Install librtmp

cd ~/src
git clone git://git.ffmpeg.org/rtmpdump
cd rtmpdump
make SYS=posix
sudo checkinstall --pkgname=rtmpdump --pkgversion="2:$(date +%Y%m%d%H%M)-git" --backup=no \
    --deldoc=yes --fstrans=no --default

Build dan Install libvpx

cd ~/src
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
    --deldoc=yes --fstrans=no --default

Build dan Install x265/HEVC

cd ~/src
hg clone http://hg.videolan.org/x265
cd x265/build/linux
./make-Makefiles.bash
make
sudo make install

check apabila telah terinstall x265

x265 --help

kalau sudah keluar helpnya maka terinstall dan tidak ada masalah, namun jika ada notif error seperti berikut

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

maka solusinya adalah

cd /lib
sudo ln -s /usr/local/lib/libx265.so.45
cd -

untuk mengecek parameter apa yang di lihat tergantung errornya, contoh error diatas berhubungan dengan file libx265.so.45, silakan sesuaikan nama filenya jika berbeda.

Langkah selanjutnya adalah build FFMPEG

cd ~/src
git clone --depth 1 git://git.videolan.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 \
    --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-librtmp \
    --enable-libxvid --enable-libass --enable-libx265 --enable-libvpx
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="99:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default

Ketika FFMPEG telah terinstall selanjutnya kita build dan install x264 LAVF support

sudo apt-get remove x264
cd ~/src/x264
rm *.deb
make distclean
./configure --enable-static --disable-opencl
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default

reboot Ubuntu anda

jika nanti muncul error ffmpeg: error while loading shared libraries: librtmp.so.1: cannot open shared object file: No such file or directory, lakukan langkah berikut

sudo nano /etc/ld.so.conf

add baris berikut

include /usr/local/lib/

save file dan ketik command berikut

sudo ldconfig

reboot ubuntu anda

Untuk Mengetahui apakah FFMPEG anda telah support x265/HEVC jalankan command berikut

ffmpeg -codecs | grep -i hevc

maka hasilnya

libavutil      	54. 18.100 / 54. 18.100
libavcodec   	56. 21.102 / 56. 21.102
libavformat  	56. 19.101 / 56. 19.101
libavdevice  	56.  4.100 / 56.  4.100
libavfilter    	 5. 10.100 /  5. 10.100
libswscale     	 3.  1.101 /  3.  1.101
libswresample  	 1.  1.100 /  1.  1.100
libpostproc  	53.  3.100 / 53.  3.100
DEV.L. hevc   	H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 )

selamat x265/HEVC sudah terinstall di ubuntu anda

Berikut maksud dari kode diatas

Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression

Link Referensi :

http://wiki.serviio.org/doku.php?id=build_ffmpeg_linux http://www.rover12421.com/


comments powered by Disqus