Skip to content

Instantly share code, notes, and snippets.

@efr2et
Forked from peerasan/ffmpeg-build.sh
Last active May 8, 2024 14:44
Show Gist options
  • Save efr2et/435b1d008bad74c442082f593c48b6a6 to your computer and use it in GitHub Desktop.
Save efr2et/435b1d008bad74c442082f593c48b6a6 to your computer and use it in GitHub Desktop.
Build FFmpeg
# Watch video: https://youtu.be/qLw6ZWUXy7U
#Require for Compiler
#apt-get install -y autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev meson ninja-build pkg-config texinfo wget yasm zlib1g-dev
sudo apt-get update -qq && sudo apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libtool libvorbis-dev meson ninja-build pkg-config texinfo wget yasm zlib1g-dev nasm
#Require for FFmpeg
sudo apt-get install libx264-dev libx265-dev libnuma-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev libaom-dev libsvtav1-dev libsvtav1enc-dev libunistring-dev libvmaf libdav1d-dev
mkdir ~/ffmpeg_sources
cd ~/ffmpeg_sources
#libaom
#cd ~/ffmpeg_sources
#git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom
#mkdir -p aom_build
#cd aom_build
#PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom
#PATH="$HOME/bin:$PATH" make -j 8
#make install
#libsvtav1
#cd ~/ffmpeg_sources
#git -C SVT-AV1 pull 2> /dev/null || git clone https://github.com/AOMediaCodec/SVT-AV1.git
#mkdir -p SVT-AV1/build
#cd SVT-AV1/build
#PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF ..
#PATH="$HOME/bin:$PATH" make -j 8
#make install
#ffmpeg
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" \
--ld="g++" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-gnutls \
--enable-libaom \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libsvtav1 \
--enable-libdav1d \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
PATH="$HOME/bin:$PATH" make -j8
make install
#For use ffmpeg
apt install libass9 libvpx7 libdav1d6 libaom3 libfdk-aac2 libsvtav1enc1 libx264-164 libx265-199 libmp3lame0 libopus0 libvorbis0a libvorbisenc2 -y
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment