1.安装x264
1)libx264需要yasm
sudo apt-get install yasm
但是yasm版本比较旧,所以安装nasm,安装方法在下面
2)安装libx264-dev
aptitude install libx264-dev
3)也可以手动安装libx264(原先libx264在ubuntu的软件源里是没有的只能手动安装,现在有了就可以不用手动安装了)
手动安装libx264库
注意:./configure --prefix="/usr" :prexfix是配置目标生成路径,默认是/usr.
3.1) 创建并切换到ffmpeg目录
cd
mkdir ffmpeg
cd ffmpeg
3.2) 下载x264源码,并切换到x264目录
git clone git://git.videolan.org/x264
cd x264
3.3) 编译并安装libx264库
./configure –enable-shared –enable-pic ,出现以下错误:
Found no assembler
Minimum version is NASM version 2.13.03
需要安装nasm,并且版本是2.13
直接sudo apt-get install yasm,出来的版本是1.13,解决方法:
1) 下载nasm-2.13源码
wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.xz
2)
./configure --prefix=/usr
make
sudo make install
测试看一下版本,
loong@loong-virtual-machine:~$ nasm -version
NASM version 2.13.03 compiled on Feb 27 2018
正确。然后回到x264目录下继续编译。
./configure --prefix=/usr
make
make install
安装成功以后便可以看到在/usr/local/lib/目录下生成libx264.so动态库,且头文件位于/usr/local/include/
2.安装依赖包
sudo apt-get install autoconf automake pkg-config build-essential git-core checkinstall texi2html libfaac-dev \
libtool libva-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libmp3lame-dev libtheora-dev \
libvorbis-dev libx11-dev libxvidcore-dev libxext-dev libxfixes-dev zlib1g-dev libopus-dev libavdevice-dev libxcb1-dev
3.然后安装ffmpeg,ffmpeg有许多依赖包,需要一个一个先安装
1). libfaac
aptitude install libfaac-dev
注意:也可以手动安装libfdk-aac
cd ~/ffmpeg
wget https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-0.1.5.tar.gz
tar xzvf fdk-aac-0.1.5.tar.gz
cd fdk-aac-0.1.5
./configure
make
make install
2). libmp3lame
aptitude install libmp3lame-dev
3). libtheora
aptitude install libtheora-dev
4). libvorbis
aptitude install libvorbis-dev
5). libxvid
aptitude install libxvidcore-dev
6). libxext
aptitude install libxext-dev
7). libxfixes
aptitude install libxfixes-dev
8).安装libvpx
cd ~/ffmpeg
wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2
tar xjvf libvpx-1.5.0.tar.bz2
cd libvpx-1.5.0
./configure --prefix=”HOME/ffmpegbuild”–disable−examples–disable−unit−tests
make
make install
make clean
4.安装ffmpeg
到http://www.ffmpeg.org/download.html#releases下载ffmpeg-3.2.10tar.bz2,解压进入ffmpeg根目录后要修改configure文件内容:
修改内容:
- SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
- LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
- SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
- SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
修改为:
- SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
- LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
- SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
- SLIB_INSTALL_LINKS='$(SLIBNAME)'
如果没有这部修改,会出现so库找不到的编译错误
然后执行如下命令:
cd ~/ffmpeg
tar -jxvf ffmpeg-3.2.10.tar.bz2
cd ffmpeg-3.2 .10
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfdk-aac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
make -j4
make install
编译成功以后变可以在/usr/local/ffmpeg看到so库文件和头文件,接下来便可以使用ffmpeg库了,不过,这种方法编译出来的ffmpeg在终端直接使用会报链接错误,这是由于 --prefix/usr/local/ffmpeg指定了路径,没有把编译出来的库链接到/usr/bin和/usr/include.
6.如果能够编译ffmpeg库又能直接使用,要避免参数--prefix指定路径。
1).编译ffmpeg
./configure –enable-shared –enable-static
make
make install
最好再执行一下ldconfig以免找不到链接库
没有使用--prefix指定路径,编译出来的执行文件ffmpeg/ffplay/ffprobe在 /usr/bin/ ,头文件在 /usr/include,so和a库文件在/usr/lib