commit 138ecdb0357df7a216a1d0108ced5051c9c789ab
Author: David Sorber <david.sorber@gmail.com>
Date:   Tue Dec 25 19:23:33 2018 -0500

    Adding FFmpeg build script.

diff --git a/software/misc/build_ffmpeg.sh b/software/misc/build_ffmpeg.sh
new file mode 100755
index 0000000..ddc72c7
--- /dev/null
+++ b/software/misc/build_ffmpeg.sh
@@ -0,0 +1,170 @@
+#!/bin/bash
+#
+# 20181218 -- Build static version of ffmpeg, basically a script that automates
+# these instructions: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
+#
+
+
+SOURCES_DIR="/home/dsorber/Downloads/ffmpeg/sources"
+BUILD_DIR="/home/dsorber/Downloads/ffmpeg/build"
+BIN_DIR="/home/dsorber/Downloads/ffmpeg/bin"
+FFMPEG_VERSION="4.1" # <--- set this to latest version
+
+NUM_CORES=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)
+
+# CLEAN: rm -rf bin/ build sources/
+
+echo "Installing prereqs..."
+sudo apt -y install \
+  autoconf \
+  automake \
+  build-essential \
+  cmake \
+  git-core \
+  libass-dev \
+  libfreetype6-dev \
+  libnuma-dev \
+  libsdl2-dev \
+  libtool \
+  libva-dev \
+  libvdpau-dev \
+  libvorbis-dev \
+  libxcb1-dev \
+  libxcb-shm0-dev \
+  libxcb-xfixes0-dev \
+  mercurial \
+  pkg-config \
+  texinfo \
+  wget \
+  zlib1g-dev
+  
+mkdir -p $SOURCES_DIR $BUILD_DIR $BIN_DIR
+  
+echo
+echo
+
+echo "Building NASM"
+cd $SOURCES_DIR && \
+wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.bz2 && \
+tar xjvf nasm-2.14.tar.bz2 && \
+cd nasm-2.14 && \
+./autogen.sh && \
+PATH="$BIN_DIR:$PATH" ./configure --prefix="$BUILD_DIR" --bindir="$BIN_DIR" && \
+make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building Yasm"
+cd $SOURCES_DIR && \
+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="$BUILD_DIR" --bindir="$BIN_DIR" && \
+make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libx264"
+cd $SOURCES_DIR && \
+git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
+cd x264 && \
+PATH="$BIN_DIR:$PATH" PKG_CONFIG_PATH="$BUILD_DIR/lib/pkgconfig" ./configure --prefix="$BUILD_DIR" \
+--bindir="$BIN_DIR" --enable-static --enable-pic && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Buildxing libx265"
+cd $SOURCES_DIR && \
+if cd x265 2> /dev/null; then hg pull && hg update; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
+cd x265/build/linux && \
+PATH="$BIN_DIR:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$BUILD_DIR" -DENABLE_SHARED=off ../../source && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libvpx"
+cd $SOURCES_DIR && \
+git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
+cd libvpx && \
+PATH="$BIN_DIR:$PATH" ./configure --prefix="$BUILD_DIR" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libfdk-aac"
+cd $SOURCES_DIR && \
+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="$BUILD_DIR" --disable-shared && \
+make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libmp3lame"
+cd $SOURCES_DIR && \
+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="$BIN_DIR:$PATH" ./configure --prefix="$BUILD_DIR" --bindir="$BIN_DIR" --disable-shared --enable-nasm && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libopus"
+cd $SOURCES_DIR && \
+git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
+cd opus && \
+./autogen.sh && \
+./configure --prefix="$BUILD_DIR" --disable-shared && \
+make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building libaom"
+cd $SOURCES_DIR && \
+git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
+mkdir aom_build && \
+cd aom_build && \
+PATH="$BIN_DIR:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$BUILD_DIR" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install
+echo
+echo
+
+echo "Building ffmpeg"
+cd $SOURCES_DIR && \
+wget -O ffmpeg-$FFMPEG_VERSION.tar.bz2 https://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2 && \
+tar xjvf ffmpeg-$FFMPEG_VERSION.tar.bz2 && \
+cd ffmpeg-$FFMPEG_VERSION && \
+PATH="$BIN_DIR:$PATH" PKG_CONFIG_PATH="$BUILD_DIR/lib/pkgconfig" ./configure \
+  --prefix="$BUILD_DIR" \
+  --pkg-config-flags="--static" \
+  --extra-cflags="-I$BUILD_DIR/include" \
+  --extra-ldflags="-L$BUILD_DIR/lib" \
+  --extra-libs="-lpthread -lm" \
+  --bindir="$BIN_DIR" \
+  --enable-gpl \
+  --enable-libaom \
+  --enable-libass \
+  --enable-libfdk-aac \
+  --enable-libfreetype \
+  --enable-libmp3lame \
+  --enable-libopus \
+  --enable-libvorbis \
+  --enable-libvpx \
+  --enable-libx264 \
+  --enable-libx265 \
+  --enable-nonfree && \
+PATH="$BIN_DIR:$PATH" make -j$NUM_CORES && \
+make install && \
+hash -r
