Last active
June 9, 2021 04:53
-
-
Save AdrianHL/ca6b7019f2897e0a0d0d9ad4f1bfc18e to your computer and use it in GitHub Desktop.
Install FFmpeg in CentOS 7
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
#!/bin/sh | |
yum -y update | |
yum -y install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel freetype-devel speex-devel ladspa-devel mercurial cmake | |
mkdir ~/ffmpeg_sources | |
#NASM | |
cd ~/ffmpeg_sources | |
curl -O -L http://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 | |
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" | |
make | |
make install | |
yes | cp -rf ~/bin/nasm /usr/bin/ | |
#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 | |
#x264 | |
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 | |
#x265 | |
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 | |
#FDK-ACC | |
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 | |
#Lame | |
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 | |
#Opus | |
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 | |
#OGG | |
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 | |
#Vorbis | |
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 | |
#VPX | |
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 | |
#LibTheora | |
cd ~/ffmpeg_sources | |
wget https://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz | |
tar -xvf libtheora-1.1.1.tar.xz | |
cd libtheora-1.1.1 | |
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" CPPFLAGS="-I/$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --disable-static | |
make | |
make install | |
#LibSpeex | |
cd ~/ffmpeg_sources | |
git clone https://github.com/xiph/speex.git | |
cd speex | |
autoreconf -fiv | |
./configure --prefix="$HOME/ffmpeg_build" --disable-shared | |
make | |
make install | |
#FreeType | |
cd ~/ffmpeg_sources | |
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz | |
tar -xvf freetype-2.9.tar.gz | |
cd freetype-2.9 | |
./configure --prefix="$HOME/ffmpeg_build" --disable-shared | |
make | |
make install | |
#FFMPEG | |
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-nonfree \ | |
--enable-libspeex \ | |
--enable-libtheora \ | |
--enable-ladspa \ | |
--enable-muxer=segment \ | |
--enable-muxer=stream_segment | |
make | |
make install | |
hash -r | |
yes | cp -rf ~/bin/{{ffmpeg,ffprobe,lame,vsyasm,x264,yasm,ytasm} /usr/bin/ | |
ffmpeg |
Thanks to http://tutorialspots.com/how-to-compile-ffmpeg-on-centos-4092.html for the tip to solve the freetype2 error.
Update steps can be found here https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Updated version from https://trac.ffmpeg.org/wiki/CompilationGuide/Centos