前言
最近在centos系统上开发需要用到ffmpeg的libavocedc等动态库,需要编译出ffmpeg的动态库。
编译
Ysam是X264和FFmpeg使用的汇编程序。
资源路径
https://pkgs.org/download/yasm
http://www.tortall.net/projects/yasm/releases/ 以这个为准 1.2.0以上版本
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
libx264
libx264 视频编码器。更多说明和用法示例可以参考:https://trac.ffmpeg.org/wiki/Encode/H.264
需要ffmpeg编译的时候添加–enable-gpl –enable-libx264
http://download.videolan.org/x264/snapshots/ 资源
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-shared
make
make install
ffmpeg
./configure --enable-gpl --enable-nonfree --yasmexe=/home/zhengbin2/bin/yasm --prefix=/home/zhengbin2/ffmpeg_build --cc= --enable-shared --disable-debug --extra-cflags='-I/home/zhengbin2/ffmpeg_build/include' --extra-ldflags='-L/home/zhengbin2/ffmpeg_build/lib -lm -ldl' --bindir="/home/zhengbin2/bin" --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --enable-postproc --enable-bzlib --enable-zlib --enable-parsers --enable-libx264 --enable-pthreads --extra-libs=-lpthread --enable-encoders --enable-decoders --enable-avfilter --enable-muxers --enable-demuxers
make
makeinstall
问题
ffmpeg编译过程中如出现,我使用的是ffmpeg-3.3.1版本
/usr/bin/ld: libavcodec/mqc.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
libavcodec/mqc.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
解决方法:
在config.mak文件Line88(不同版本位置可能不同)加上-fPIC,然后重新编译。