最近不是很忙,就搞搞之前一直没有搞定的 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