centos编译 Compiling FFmpeg on CentOS RHEL Fedora

前端之家收集整理的这篇文章主要介绍了centos编译 Compiling FFmpeg on CentOS RHEL Fedora前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

This guide is based on aminimal installation of the latest CentOS release,and will provide a local,non-system installation of FFmpeg with support for several external encoding libraries. These instructions should also work for recent Red Hat Enterprise Linux (RHEL) andFedora. This is a non-invasive guide and undoing all steps is simple and is shown at the end of this page.


Get the Dependencies

These are required compiling,but you can remove them when you are done if you prefer (exceptmake; it should be installed by default and many things depend on it).

# yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel bzip2 
In your home directory make a new directory to put all of the source code into:
mkdir ~/ffmpeg_sources

Compilation & Installation

Note:If you do not require certain encoders you may skip the relevant section and then remove the appropriate./configureoption in FFmpeg. For example,if libvorbis is not needed,then skip that section and then remove--enable-libvorbisfrom theInstall FFmpegsection.

Yasm

Yasm is an assembler used by x264 and FFmpeg.

cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make && make install
make distclean

libx264

H.264 video encoder. See theH.264 Encoding Guidefor more information and usage examples.

Requiresffmpegto be configured with--enable-gpl--enable-libx264.

cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make && make installmake distclean

libx265

H.265/HEVCvideo encoder. See theH.265 Encoding Guidefor more information and usage examples.

--enable-gpl--enable-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

AAC audioencoder.

--enable-libfdk-aac(and--enable-nonfreeif you also included--enable-gpl).

cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make && make install && make distclean

libmp3lame

MP3 audio encoder.

--enable-libmp3lame.

cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
make distclean

libopus

Opus audiodecoder and encoder.

--enable-libopus.

cd ~/ffmpeg_sources
git clone git://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

libogg

Oggbitstreamlibrary. required bylibtheoraandlibvorbis.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

libvorbis

Vorbisaudioencoder. Requireslibogg.

--enable-libvorbis.

cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

libvpx

VP8/VP9 video encoder.

--enable-libvpx.


地址要改为https://github.com/webmproject/libvpx/ git clonehttps://github.com/webmproject/libvpx



cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples
make
make install
make clean

FFmpeg

cd ~/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
make && make install && make distclean
hash -r

Compilation is now complete andffmpeg(alsoffprobe,ffserver,250)">lame,andx264) should now be ready to use. The rest of this guide shows how to update or remove FFmpeg.

编译完成后,会:


Tip:Keep theffmpeg_sourcesdirectory and all contents if you intend toupdateas shown below. Otherwise you can delete this directory.


Updating

Development of FFmpeg is active and an occasional update can give you new features and bug fixes. First,remove the old files and then update the dependencies:

rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,x265,yasm,ytasm}
# yum install autoconf automake cmake gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

Update Yasm

cd ~/ffmpeg_sources/yasm
make distclean
git pull

Then run./configure,250)">make,250)">make installas shown in theInstall yasmsection.

Update x264

cd ~/ffmpeg_sources/x264
make distclean
git pull

make installas shown in theInstall x264section.

Update x265

cd ~/ffmpeg_sources/x265
rm -rf ~/ffmpeg_sources/x265/build/linux/*
hg update
cd ~/ffmpeg_sources/x265/build/linux

cmake,250)">make installas shown in theInstall x265section.

Update libfdk_aac

cd ~/ffmpeg_sources/fdk_aac
make distclean
git pull

make installas shown in theInstall libfdk_aacsection.

Update libvpx

cd ~/ffmpeg_sources/libvpx
make clean
git pull

make installas shown in theInstall libvpxsection.

Update FFmpeg

cd ~/ffmpeg_sources/ffmpeg
make distclean
git pull

make installas shown in theInstall FFmpegsection.


Reverting changes made by this guide
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ytasm}
# yum erase autoconf automake cmake gcc gcc-c++ git libtool mercurial nasm pkgconfig zlib-devel
hash -r

If You Need Help

Feel free to ask your questions at the #ffmpeg IRC channel or the​ffmpeg-usermailing list.


Also See

猜你在找的CentOS相关文章