Ffmpeg: compile
Compile FFmpeg di Ubuntu, Debian, atau Mint
Instalasi aplikasi pendukung
sudo apt-get update sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \ libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \ libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
mkdir -p ~/ffmpeg_sources
Catatan:
Untuk server tidak perlu menginstalasi dependensi untuk ffplay dan x11
libsdl1.2-dev libva-dev libvdpau-dev libx11-dev libxext-dev libxfixes-dev.
Untuk ubuntu versi barudapat menginstalasi lengkap dengan codec
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \ libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \ libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev \ yasm libx264-dev libmp3lame-dev nasm libopus-dev
Compilation & Installation
Kita dapat mengcompile ffmpeg sesuai dengan kemauan kita. Kita dapat menghilangkan / skip bagian yang kita tidak perlukan di opsi ./configure saat mengcompile FFmpeg. Contoh, jika kita tidak memerlukan libopus skip bagian libopus dan buang --enable-libopus dari ./configure ffmpeg.
Manual ini akan membuat directory
ffmpeg_sources – dimana source file akan di download. ffmpeg_build – dimana file akan di built dan library di instalasi. bin – dimana binary (ffmpeg, ffplay, ffserver, x264, and yasm) akan di instalasi.
Yasm
Assembler untuk optimisasi x86 digunakan oleh x264 dan FFmpeg. Sangat di sarankan agar build yang kita lakukan tidak terlalu lambat.
Jika repository kita dapat memberikan yasm package ≥ 1.3.0 maka kita dapat menginstalasi dengan cara:
sudo apt-get install yasm
Atau kita dapat compile:
cd ~/ffmpeg_sources 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 --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install make distclean
libx264
H.264 video encoder.
ffmpeg perlu di konfigurasi dengan --enable-gpl --enable-libx264.
Jika repository kita dapat memberi libx264-dev package ≥ 0.118 kita dapat menginstalasi:
sudo apt-get install libx264-dev
atau compile:
cd ~/ffmpeg_sources wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 tar xjvf last_x264.tar.bz2 cd x264-snapshot* PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static PATH="$HOME/bin:$PATH" make make install make distclean
libfdk-aac
AAC audio encoder.
ffmpeg perlu di konfigurasi --enable-libfdk_aac (dan --enable-nonfree jika kita menggunakan --enable-gpl).
Atau compile:
sudo apt-get install unzip cd ~/ffmpeg_sources wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zip cd mstorsjo-fdk-aac* autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean
libmp3lame
MP3 audio encoder.
ffmpeg di konfigurasi dengan --enable-libmp3lame.
Jika repository dapat memberikan libmp3lame-dev package ≥ 3.98.3 kita dapat menginstalasi dengan:
sudo apt-get install libmp3lame-dev
atau compile:
sudo apt-get install nasm cd ~/ffmpeg_sources wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz tar xzvf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared make make install make distclean
libopus
Opus audio decoder & encoder.
ffmpeg di konfiurasi dengan --enable-libopus.
Jika repository memberi libopus-dev package ≥ 1.1 kita dapat menggunakan
sudo apt-get install libopus-dev
atau:
cd ~/ffmpeg_sources wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz tar xzvf opus-1.1.tar.gz cd opus-1.1 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean
libvpx
VP8/VP9 video encoder & decoder.
ffmpeg di konfigurasi dengan --enable-libvpx.
Atau compile:
cd ~/ffmpeg_sources wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2 tar xjvf libvpx-v1.3.0.tar.bz2 cd libvpx-v1.3.0 PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples PATH="$HOME/bin:$PATH" make make install make clean
ffmpeg
Catatan: untuk Server dapat men-skip --enable-x11grab (opsi ini untuk melakukan x11 screen grabbing).
cd ~/ffmpeg_sources wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 tar xjvf ffmpeg-snapshot.tar.bz2 cd ffmpeg PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-nonfree \ --enable-x11grab PATH="$HOME/bin:$PATH" make make install make distclean hash -r
Penutup
Instalasi selesai dan ffmpeg siap digunakan. FFmpeg program ada di ~/bin. Untuk menggunakannya:
- Pindah ke ~/bin dan jalankan:
cd ~/bin && ./ffmpeg -i ~/input.mp4 ~/videos/output.mkv (perhatikan ./)
- Atau menggunakan full path:
/home/yourusername/bin/ffmpeg -i ../input.mp4 ../videos/output.mkv
Atau yang lebih sederhana jalankan langsung perintah ffmpeg.
Persistent Environment Variables
Agar ffmpeg dapat langsung dijalankan tanpa pusing kepala
echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath . ~/.profile
Updating FFmpeg
Pengembangan FFmpeg sangat aktif dan kadang-kadang di update untuk memberikan fitur baru dan perbaikan. Pertama-tama kita perlu men-delete file lama:
rm -rf ~/ffmpeg_build ~/ffmpeg_sources \ ~/bin/{ffmpeg,ffprobe,ffserver,vsyasm,x264,yasm,ytasm}
Kemudian ikuti lagi perintah dari awal. Atau yang lebih lengkap
rm -rf ~/ffmpeg_build ~/ffmpeg_sources \ ~/bin/{ffmpeg,ffprobe,ffserver,vsyasm,x264,yasm,ytasm}
sudo apt-get autoremove autoconf automake build-essential libass-dev \ libfreetype6-dev libgpac-dev libmp3lame-dev libopus-dev libsdl1.2-dev \ libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libvpx-dev \ libx11-dev libx264-dev libxext-dev libxfixes-dev texi2html zlib1g-dev sed -i '/ffmpeg_build/c\' ~/.manpath hash -r