Skip to content

Instantly share code, notes, and snippets.

@xiopt
Forked from talkingnews/ffmpeg_build.sh
Last active December 24, 2022 05:00

Revisions

  1. xiopt revised this gist Mar 19, 2020. 1 changed file with 32 additions and 15 deletions.
    47 changes: 32 additions & 15 deletions ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -97,31 +97,48 @@ cd opus && \
    make && \
    make install

    cd ~/ffmpeg_sources && \
    hg clone http://hg.libsdl.org/SDL && \
    cd ~/ffmpeg_sources/SDL && \
    ./autogen.sh -ivf && \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --with-x --with-pic=yes \
    --disable-alsatest --enable-pthreads --enable-static=yes --enable-shared=no && \
    make -j$(nproc) VERBOSE=1 && \
    make -j$(nproc) install VERBOSE=1 && \
    make -j$(nproc) clean VERBOSE=1


    cd ~/ffmpeg_sources && \
    wget -O ffmpeg-snapshot.tar.bz2 https://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" \
    PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig:/opt/intel/mediasdk/lib/pkgconfig" ./configure \
    --pkg-config-flags="--static" \
    --enable-static --disable-shared \
    --prefix="$HOME/ffmpeg_build" \
    --bindir="$HOME/bin" \
    --extra-cflags="-I$HOME/ffmpeg_build/include" \
    --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
    --extra-libs="-lpthread -lm" \
    --bindir="$HOME/bin" \
    --enable-gpl \
    --enable-libass \
    --enable-libfdk-aac \
    --enable-libfreetype \
    --enable-libmp3lame \
    --extra-cflags="-I/opt/intel/mediasdk/include" \
    --extra-ldflags="-L/opt/intel/mediasdk/lib" \
    --extra-ldflags="-L/opt/intel/mediasdk/plugins" \
    --enable-libmfx \
    --enable-vaapi \
    --enable-libopus \
    --enable-opencl \
    --disable-debug \
    --enable-libvorbis \
    --enable-libvpx \
    --enable-libdrm \
    --enable-gpl \
    --enable-runtime-cpudetect \
    --enable-libfdk-aac \
    --enable-libx264 \
    --enable-libx265 \
    --enable-nonfree && \
    PATH="$HOME/bin:$PATH" make && \
    make install && \
    hash -r && \
    cp $HOME/bin/* /usr/local/bin
    --enable-openssl \
    --enable-pic \
    --extra-libs="-lpthread -lm -lz -ldl" \
    --enable-nonfree
    PATH="$HOME/bin:$PATH" make -j$(nproc)
    make -j$(nproc) install
    make -j$(nproc) distclean
    hash -r
  2. xiopt revised this gist Mar 19, 2020. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -80,6 +80,15 @@ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME
    PATH="$HOME/bin:$PATH" make && \
    make install

    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 && \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared
    PATH="$HOME/bin:$PATH" make && \
    make install

    cd ~/ffmpeg_sources && \
    git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
    cd opus && \
    @@ -105,6 +114,7 @@ PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./conf
    --enable-libfdk-aac \
    --enable-libfreetype \
    --enable-libmp3lame \
    --enable-vaapi \
    --enable-libopus \
    --enable-libvorbis \
    --enable-libvpx \
  3. xiopt revised this gist Mar 19, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,7 @@ make && \
    make install

    cd ~/ffmpeg_sources && \
    git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
    git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264 && \
    cd x264 && \
    PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic --disable-opencl && \
    PATH="$HOME/bin:$PATH" make && \
  4. xiopt revised this gist Mar 19, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -43,7 +43,7 @@ make install
    cd ~/ffmpeg_sources && \
    git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
    cd x264 && \
    PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
    PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic --disable-opencl && \
    PATH="$HOME/bin:$PATH" make && \
    make install

  5. @talkingnews talkingnews revised this gist Mar 31, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion install
    Original file line number Diff line number Diff line change
    @@ -3,4 +3,4 @@ chmod a+x ffmpeg_build.sh
    ./ffmpeg_build.sh


    Updated for 2019
    Updated for 2019 - see https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
  6. @talkingnews talkingnews revised this gist Mar 31, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion install
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    wget https://gist.github.com/iJackUA/5582974/raw/b3dd91aa0c2fab4b5a8eda70f09d1d23bae6cd75/ffmpeg_build.sh
    wget https://gist.githubusercontent.com/talkingnews/3a2ba82a18ccfd2b38eadcb1cbf78757/raw/65fb12dd6ca19cf85455c012de573995c0472266/ffmpeg_build.sh
    chmod a+x ffmpeg_build.sh
    ./ffmpeg_build.sh

  7. @talkingnews talkingnews revised this gist Mar 31, 2019. 2 changed files with 119 additions and 40 deletions.
    154 changes: 115 additions & 39 deletions ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -1,41 +1,117 @@
    #!/bin/bash

    sudo apt-get update
    sudo apt-get -y install autoconf automake build-essential git libass-dev libfaac-dev libgpac-dev libmp3lame-dev libopus-dev libtheora-dev libtool libvorbis-dev libvpx-dev pkg-config texi2html yasm zlib1g-dev

    # YASM
    wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
    tar xf yasm-1.2.0.tar.gz
    cd yasm-1.2.0
    ./configure
    make
    make install
    cd ..

    # x264
    git clone --depth 1 git://git.videolan.org/x264.git
    cd x264
    ./configure --prefix="$HOME/ffmpeg_build" --bindir="/usr/bin" --enable-static
    make
    make install
    cd ..

    # fdk-aac
    git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
    cd fdk-aac
    autoreconf -fiv
    ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
    make
    make install
    cd ..

    # ffmpeg
    git clone --depth 1 git://source.ffmpeg.org/ffmpeg
    cd ffmpeg
    ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \
    --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="/usr/bin" --enable-gpl --enable-libass \
    --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora \
    --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
    make
    make install
    cd ..
    sudo apt-get update -qq && sudo apt-get -y install \
    autoconf \
    automake \
    build-essential \
    cmake \
    git-core \
    libass-dev \
    libfreetype6-dev \
    libsdl2-dev \
    libtool \
    libva-dev \
    libvdpau-dev \
    libvorbis-dev \
    libxcb1-dev \
    libxcb-shm0-dev \
    libxcb-xfixes0-dev \
    pkg-config \
    texinfo \
    wget \
    zlib1g-dev

    mkdir -p ~/ffmpeg_sources ~/bin

    cd ~/ffmpeg_sources && \
    wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
    tar xjvf nasm-2.14.02.tar.bz2 && \
    cd nasm-2.14.02 && \
    ./autogen.sh && \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
    make && \
    make install

    cd ~/ffmpeg_sources && \
    wget -O yasm-1.3.0.tar.gz https://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 && \
    git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
    cd x264 && \
    PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
    PATH="$HOME/bin:$PATH" make && \
    make install

    sudo apt-get install mercurial libnuma-dev && \
    cd ~/ffmpeg_sources && \
    if cd x265 2> /dev/null; then hg pull && hg update && cd ..; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
    cd x265/build/linux && \
    PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
    PATH="$HOME/bin:$PATH" make && \
    make install

    cd ~/ffmpeg_sources && \
    git -C libvpx pull 2> /dev/null || 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 --enable-vp9-highbitdepth --as=yasm && \
    PATH="$HOME/bin:$PATH" make && \
    make install


    cd ~/ffmpeg_sources && \
    git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
    cd fdk-aac && \
    autoreconf -fiv && \
    ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
    make && \
    make install


    cd ~/ffmpeg_sources && \
    wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
    tar xzvf lame-3.100.tar.gz && \
    cd lame-3.100 && \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
    PATH="$HOME/bin:$PATH" make && \
    make install

    cd ~/ffmpeg_sources && \
    git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
    cd opus && \
    ./autogen.sh && \
    ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
    make && \
    make install


    cd ~/ffmpeg_sources && \
    wget -O ffmpeg-snapshot.tar.bz2 https://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" \
    --extra-libs="-lpthread -lm" \
    --bindir="$HOME/bin" \
    --enable-gpl \
    --enable-libass \
    --enable-libfdk-aac \
    --enable-libfreetype \
    --enable-libmp3lame \
    --enable-libopus \
    --enable-libvorbis \
    --enable-libvpx \
    --enable-libx264 \
    --enable-libx265 \
    --enable-nonfree && \
    PATH="$HOME/bin:$PATH" make && \
    make install && \
    hash -r && \
    cp $HOME/bin/* /usr/local/bin
    5 changes: 4 additions & 1 deletion install
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,6 @@
    wget https://gist.github.com/iJackUA/5582974/raw/b3dd91aa0c2fab4b5a8eda70f09d1d23bae6cd75/ffmpeg_build.sh
    chmod a+x ffmpeg_build.sh
    ./ffmpeg_build.sh
    ./ffmpeg_build.sh


    Updated for 2019
  8. @iJackUA iJackUA revised this gist Jun 14, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion install
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,3 @@
    wget https://gist.github.com/iJackUA/5582974/raw/b3dd91aa0c2fab4b5a8eda70f09d1d23bae6cd75/ffmpeg_build.sh
    chmod a+x ffmpeg_build.s
    chmod a+x ffmpeg_build.sh
    ./ffmpeg_build.sh
  9. @iJackUA iJackUA revised this gist Jun 14, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ffmpeg_build.sh
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ cd ..
    # x264
    git clone --depth 1 git://git.videolan.org/x264.git
    cd x264
    ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
    ./configure --prefix="$HOME/ffmpeg_build" --bindir="/usr/bin" --enable-static
    make
    make install
    cd ..
  10. @iJackUA iJackUA revised this gist May 15, 2013. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions install
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    wget https://gist.github.com/iJackUA/5582974/raw/b3dd91aa0c2fab4b5a8eda70f09d1d23bae6cd75/ffmpeg_build.sh
    chmod a+x ffmpeg_build.s
    ./ffmpeg_build.sh
  11. @iJackUA iJackUA renamed this gist May 15, 2013. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  12. @iJackUA iJackUA created this gist May 15, 2013.
    41 changes: 41 additions & 0 deletions FFMPEG latest
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    #!/bin/bash

    sudo apt-get update
    sudo apt-get -y install autoconf automake build-essential git libass-dev libfaac-dev libgpac-dev libmp3lame-dev libopus-dev libtheora-dev libtool libvorbis-dev libvpx-dev pkg-config texi2html yasm zlib1g-dev

    # YASM
    wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
    tar xf yasm-1.2.0.tar.gz
    cd yasm-1.2.0
    ./configure
    make
    make install
    cd ..

    # x264
    git clone --depth 1 git://git.videolan.org/x264.git
    cd x264
    ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
    make
    make install
    cd ..

    # fdk-aac
    git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
    cd fdk-aac
    autoreconf -fiv
    ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
    make
    make install
    cd ..

    # ffmpeg
    git clone --depth 1 git://source.ffmpeg.org/ffmpeg
    cd ffmpeg
    ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \
    --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="/usr/bin" --enable-gpl --enable-libass \
    --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora \
    --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
    make
    make install
    cd ..