CentOS下编译安装FFmpeg+libass

1 安装x264相关库

如果x264在编译安装时提示错误: Minimum version is nasm-2.13,则需要先安装nasm:

wget "http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz"

tar xvf nasm-2.13.01.tar.xz

cd nasm-2.13.01

./configure

make&make install

安装 x264

wget "https://download.videolan.org/pub/videolan/x264/snapshots/last_stable_x264.tar.bz2"

tar xvf last_stable_x264.tar.bz2

cd x264-snapshot-20180607-2245-stable/

./configure --prefix=/usr/local/x264 --enable-shared --enable-static

make&make install


2 安装 libfreetype

如果ffmpeg编译参数包含 --enable-libass 则需要先安装 libfreetype fribidi fontconfig libass

wget "https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz"

tar zxvf freetype-2.9.1.tar.gz

cd freetype-2.9.1/

./configure --prefix=/usr/local --disable-static

make

make install


3 安装 fribidi

wget "https://github.com/fribidi/fribidi/releases/download/v1.0.4/fribidi-1.0.4.tar.bz2"

tar xf fribidi-1.0.4.tar.bz2

cd fribidi-1.0.4

./configure --prefix=/usr/local/ --enable-shared

make

make install


4 安装 fontconfig

为防止出现找不到 libfreetype 的错误,首先修改 PKG_CONFIG_PATH 环境变量:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

wget "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.0.tar.gz"

tar zxvf fontconfig-2.13.0.tar.gz

cd fontconfig-2.13.0

./configure --prefix=/usr/local/ --enable-shared --enable-libxml2

make

make install


如果报错 No package 'uuid' found 则按如下步骤解决:

yum -y install libuuid-devel


如果报错 WARNING: 'gperf' is missing on your system. 则按如下步骤解决:

wget http://mirrors.ustc.edu.cn/gnu/gperf/gperf-3.1.tar.gz

tar zxvf gperf-3.1.tar.gz

cd gperf-3.1

./configure

make

make install


5 安装 libass

wget https://github.com/libass/libass/releases/download/0.14.0/libass-0.14.0.tar.xz

tar xvf libass-0.14.0.tar.xz

cd libass-0.14.0

./configure --prefix=/usr/local/ --disable-static

make

make install


6 安装 ffmpeg

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

wget "http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2"

tar xvf ffmpeg-3.4.tar.bz2

cd ffmpeg-3.4

./configure --prefix=/usr/local/ffmpeg3.4/ --enable-shared --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --enable-libass

make

make install

#######重要事项#######

extra-cflags 和 extra-ldflags 两个参数不指定对应路径会一直报这个错误,花了挺长时间来找解决方法,还是挺郁闷的,希望看到的朋友不要再走弯路了。

libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_152'


7 编译完成后,在 /etc/profile 文件下增加如下字段:

FFMPEG=/usr/local/ffmpeg3.4

X264=/usr/local/x264

export FFMPEG X264

export PATH=$PATH:$FFMPEG/bin:$X264/bin

export LD_LIBRARY_PATH=$X264/lib:$FFMPEG/lib:$LD_LIBRARY_PATH

这样ffmpeg就能在linux环境下使用了。


8 php通过exec调用ffmpeg如出现权限问题或以下错误:

error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

解决方法:

vi /etc/ld.so.conf


文件中添加以下内容:

include ld.so.conf.d/*.conf

include /usr/local/lib

/usr/local/ffmpeg3.4/lib

/usr/local/x264/lib


执行ldconfig命令进行更新路径:

ldconfig

你可能感兴趣的:(CentOS下编译安装FFmpeg+libass)