Last active
May 13, 2022 14:34
-
-
Save cbosco/99535f2d6b1c6cf27c7bc109eb2892a2 to your computer and use it in GitHub Desktop.
Compile ffmpeg with libfdk_aac in a Lambda-like environment (Amazon Linux, CentOS)
This file contains 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
# Copied from https://trac.ffmpeg.org/wiki/CompilationGuide/Centos | |
yum install -y autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel | |
mkdir ~/ffmpeg_sources | |
# NASM | |
cd ~/ffmpeg_sources | |
curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2 | |
tar xjvf nasm-2.13.02.tar.bz2 | |
cd nasm-2.13.02 | |
./autogen.sh | |
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" | |
make | |
make install | |
# Yasm | |
cd ~/ffmpeg_sources | |
curl -O -L http://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 | |
# libx264 | |
cd ~/ffmpeg_sources | |
git clone --depth 1 http://git.videolan.org/git/x264 | |
cd x264 | |
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static | |
make | |
make install | |
# libx265 | |
cd ~/ffmpeg_sources | |
hg clone https://bitbucket.org/multicoreware/x265 | |
cd ~/ffmpeg_sources/x265/build/linux | |
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source | |
make | |
make install | |
# libfdk_aac | |
cd ~/ffmpeg_sources | |
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 | |
# libmp3lame | |
cd ~/ffmpeg_sources | |
curl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz | |
tar xzvf lame-3.100.tar.gz | |
cd lame-3.100 | |
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm | |
make | |
make install | |
# libopus | |
cd ~/ffmpeg_sources | |
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz | |
tar xzvf opus-1.2.1.tar.gz | |
cd opus-1.2.1 | |
./configure --prefix="$HOME/ffmpeg_build" --disable-shared | |
make | |
make install | |
# libogg | |
cd ~/ffmpeg_sources | |
curl -O -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz | |
tar xzvf libogg-1.3.3.tar.gz | |
cd libogg-1.3.3 | |
./configure --prefix="$HOME/ffmpeg_build" --disable-shared | |
make | |
make install | |
# libvorbis | |
cd ~/ffmpeg_sources | |
curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz | |
tar xzvf libvorbis-1.3.5.tar.gz | |
cd libvorbis-1.3.5 | |
./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared | |
make | |
make install | |
# libvpx | |
cd ~/ffmpeg_sources | |
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git | |
cd libvpx | |
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm | |
make | |
make install | |
# ffmpeg itself | |
cd ~/ffmpeg_sources | |
curl -O -L 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 \ | |
--extra-libs=-lm \ | |
--bindir="$HOME/bin" \ | |
--enable-gpl \ | |
--enable-libfdk_aac \ | |
--enable-libfreetype \ | |
--enable-libmp3lame \ | |
--enable-libopus \ | |
--enable-libvorbis \ | |
--enable-libvpx \ | |
--enable-libx264 \ | |
--enable-libx265 \ | |
--enable-static \ | |
--enable-nonfree | |
make | |
make install | |
hash -r | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I got this error on RHEL 7.5 on AWS:
[EDIT] was able to fix by adding /root/bin to my PATH