#!/usr/bin/env bash # Installs ffmpeg from source (HEAD) with libaom and libx265, as well as a few # other common libraries # binary will be at $BASE_DIR/bin/ffmpeg apt update && apt upgrade -y BASE_DIR="/openbayes/home" mkdir -p "$BASE_DIR/ffmpeg_sources" "$BASE_DIR/bin" export PATH="$BASE_DIR/bin:$PATH" apt -y install \ autoconf \ automake \ build-essential \ cmake \ git \ libass-dev \ libfreetype6-dev \ libsdl2-dev \ libtheora-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ mercurial \ pkg-config \ texinfo \ wget \ zlib1g-dev \ yasm \ libvpx-dev \ libopus-dev \ libx264-dev \ libmp3lame-dev \ libfdk-aac-dev # Install libaom from source. mkdir -p "$BASE_DIR/ffmpeg_sources/libaom" && \ cd $BASE_DIR/ffmpeg_sources/libaom && \ git clone https://aomedia.googlesource.com/aom && \ cmake ./aom && \ make && \ make install # Install libx265 from source. cd "$BASE_DIR/ffmpeg_sources" && \ hg clone https://bitbucket.org/multicoreware/x265 && \ cd x265/build/linux && \ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$BASE_DIR/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source && \ make && \ make install cd "$BASE_DIR/ffmpeg_sources" && \ wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \ tar xjvf ffmpeg-snapshot.tar.bz2 && \ cd ffmpeg && \ PKG_CONFIG_PATH="$BASE_DIR/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$BASE_DIR/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$BASE_DIR/ffmpeg_build/include" \ --extra-ldflags="-L$BASE_DIR/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$BASE_DIR/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libmp3lame \ --enable-libx264 \ --enable-libx265 \ --enable-libtheora \ --enable-libfreetype \ --enable-libvorbis \ --enable-libopus \ --enable-libvpx \ --enable-libaom \ --enable-nonfree && \ make && \ make install && \ hash -r