Created
May 18, 2026 23:04
-
-
Save deadflowers/e1bc998128e2a71be3b851d334efe236 to your computer and use it in GitHub Desktop.
My FFmpeg Installer
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 -e | |
| WORKSPACE="/home/ray/installs/ffmpeg_sources" | |
| echo "Re-creating fresh build workspace at ${WORKSPACE}..." | |
| rm -rf "${WORKSPACE}" | |
| mkdir -p "${WORKSPACE}" | |
| cd "${WORKSPACE}" | |
| echo "Installing airtight dependency matrix..." | |
| sudo apt update | |
| sudo apt install -y cmake git build-essential pkg-config yasm nasm \ | |
| libx264-dev libx265-dev libnuma-dev libvpl-dev liblilv-dev \ | |
| libsdl2-dev libfreetype-dev libfontconfig-dev libfribidi-dev \ | |
| libsvtav1enc-dev libjxl-dev libfdk-aac-dev libcaca-dev \ | |
| libdav1d-dev libaom-dev libmysofa-dev libass-dev libgnutls28-dev \ | |
| libmp3lame-dev libopus-dev libsoxr-dev libvorbis-dev libvpx-dev \ | |
| libwebp-dev libzimg-dev libplacebo-dev | |
| echo "Fetching Fraunhofer VVenC source tree..." | |
| git clone --depth 1 --branch v1.12.1 https://github.com/fraunhoferhhi/vvenc.git | |
| cd vvenc | |
| mkdir build && cd build | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. | |
| make -j$(nproc) | |
| sudo make install | |
| sudo ldconfig | |
| cd "${WORKSPACE}" | |
| export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH | |
| echo "Cloning upstream FFmpeg codebase..." | |
| git clone --depth 1 https://git.ffmpeg.org/ffmpeg.git ffmpeg | |
| cd ffmpeg | |
| echo "Configuring FFmpeg compilation matrix..." | |
| ./configure \ | |
| --prefix=/usr/local \ | |
| --arch=amd64 \ | |
| --toolchain=hardened \ | |
| --enable-gpl \ | |
| --enable-version3 \ | |
| --enable-nonfree \ | |
| --disable-stripping \ | |
| --enable-gnutls \ | |
| --enable-libaom \ | |
| --enable-libass \ | |
| --enable-libcaca \ | |
| --enable-libdav1d \ | |
| --enable-libfdk-aac \ | |
| --enable-libfontconfig \ | |
| --enable-libfreetype \ | |
| --enable-libfribidi \ | |
| --enable-libjxl \ | |
| --enable-libmp3lame \ | |
| --enable-libmysofa \ | |
| --enable-libopus \ | |
| --enable-libsoxr \ | |
| --enable-libvorbis \ | |
| --enable-libvpx \ | |
| --enable-libwebp \ | |
| --enable-libx264 \ | |
| --enable-libx265 \ | |
| --enable-libzimg \ | |
| --enable-libvpl \ | |
| --enable-lv2 \ | |
| --enable-sdl2 \ | |
| --enable-libplacebo \ | |
| --enable-libsvtav1 \ | |
| --enable-shared \ | |
| --enable-libvvenc | |
| echo "Compiling system binaries..." | |
| make -j$(nproc) | |
| echo "Installing targets..." | |
| sudo make install | |
| sudo ldconfig | |
| echo "Deployment complete. Cleaning workspace..." | |
| cd /home/ray/installs | |
| rm -rf "${WORKSPACE}" | |
| hash -r | |
| echo "Verification:" | |
| /usr/local/bin/ffmpeg -hide_banner -buildconf | grep -E "vvc|jxl|fdk|caca|svtav1" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment