Last active
December 4, 2017 14:05
-
-
Save Mehrdad-Dadkhah/54cc0d8d003d430764ce87ffa53daf31 to your computer and use it in GitHub Desktop.
Compile FFmpeg on Ubuntu, Debian, or Mint. install on Ubuntu, Debian, and Linux Mint it will provide a local install of the latest FFmpeg tools and libraries including several external encoding and decoding libraries (codecs).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| set -eo pipefail | |
| set -x | |
| apt-get update | |
| apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \ | |
| libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \ | |
| libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev libnuma-dev | |
| mkdir -p ~/ffmpeg_sources | |
| MAKEFLAGS=${MAKEFLAGS:-"-j5"} | |
| apt-get -y install yasm || (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) | |
| cd ~/ffmpeg_sources | |
| wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.bz2 | |
| tar xjvf nasm-2.13.01.tar.bz2 | |
| cd nasm-2.13.01 | |
| ./autogen.sh | |
| PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" | |
| PATH="$HOME/bin:$PATH" make | |
| make install | |
| apt-get -y install libx264-dev || (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 --disable-opencl \ | |
| && PATH="$HOME/bin:$PATH" make ${MAKEFLAGS} \ | |
| && make install) | |
| apt-get -y install libx265-dev || (apt-get -y install cmake mercurial \ | |
| && cd ~/ffmpeg_sources \ | |
| && rm -rf x265 \ | |
| && hg clone https://bitbucket.org/multicoreware/x265 \ | |
| && cd ~/ffmpeg_sources/x265/build/linux \ | |
| && PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source \ | |
| && make ${MAKEFLAGS} \ | |
| && make install) | |
| apt-get -y install libfdk-aac-dev || (cd ~/ffmpeg_sources \ | |
| && wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master \ | |
| && tar xzvf fdk-aac.tar.gz \ | |
| && cd mstorsjo-fdk-aac* \ | |
| && autoreconf -fiv \ | |
| && ./configure --prefix="$HOME/ffmpeg_build" --disable-shared \ | |
| && make ${MAKEFLAGS} \ | |
| && make install) | |
| apt-get -y install libmp3lame-dev || (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 ${MAKEFLAGS} \ | |
| && make install) | |
| apt-get -y install libopus-dev || (cd ~/ffmpeg_sources \ | |
| && wget https://archive.mozilla.org/pub/opus/opus-1.1.5.tar.gz \ | |
| && tar xzvf opus-1.1.5.tar.gz \ | |
| && cd opus-1.1.5 \ | |
| && ./configure --prefix="$HOME/ffmpeg_build" --disable-shared \ | |
| && make ${MAKEFLAGS} \ | |
| && make install) | |
| apt-get -y install libvpx-dev || (apt-get -y install git \ | |
| && cd ~/ffmpeg_sources \ | |
| && rm -rf libvpx \ | |
| && git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git \ | |
| && cd libvpx \ | |
| && PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests \ | |
| && PATH="$HOME/bin:$PATH" make ${MAKEFLAGS} \ | |
| && make install) | |
| 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" \ | |
| --pkg-config-flags="--static" \ | |
| --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-libx265 \ | |
| --enable-nonfree | |
| PATH="$HOME/bin:$PATH" make ${MAKEFLAGS} | |
| make install | |
| hash -r |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment