最近不是很忙,就搞搞之前一直没有搞定的 ffmpeg在 centos下的安装,真的是不容易啊。



    最开始安装了一次成功了,但是 ffmpeg库生成的是 静态库(完全按照网址中的教程去做),导致 编译的时候 需要把程序所依赖的所有库文件 全部写在 Makefile中,导致 程序编译出来居然 90多M。

--enable-shared选项(或者只在 最后ffmpeg编译的时候 加上 --enable-shared也可以),让 其编译出来的 文件是共享的。这样 程序编译出来 大小只有 2M。(到时候移植 共享库就可以了)


    我感觉,其实 将 前面的库编译为 静态的也可以,只把 ffmpeg编译为动态的就行,因为 ffmpeg中 .a文件已经包含了其他的文件,加上 --enable-shared只是多了 *.so文件而已,只是减小了程序的大小。


    下面有好多 url地址是无效的,获取不到数据,可以 直接打开 url地址下载文件下载进行安装,ffmpeg在Linux上面 git太慢了,我直接去 github上下载的安装包,然后在 Linux上安装的。




     真正安装 ffmpeg (可以参考上面的网址)

    1.安装 编译环境 


    yum install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel


    创建 生成文件目录:


mkdir ~/ffmpeg_sou 
rces



    2.安装 Yasm     


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


    3.安装 libx264


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


    4.安装 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


    5.安装 libfdk_aac


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


    6.安装  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


    7.安装  libopus


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


    8.安装  libogg


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


    9.安装  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


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

    11.安装 ffmpeg,这里 可以去掉 

--pkg-config-flags="--static" 更改为 --enable-shared,这样可以生成共享库,使 使用ffmpeg的程序编译出来的大小很小。如果 ./configure有错误,可以去掉 --enable-*指定的包

cd ~/ffmpeg_sources
git clone https://git.ffmpeg.org/ffmpeg.git 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