1.下载ffmpeg所需要源码包
ffmpeg源码:http://www.ffmpeg.org/download.html
SDL2-2.0.9源码:http://www.libsdl.org/download-2.0.php
fdk-aac源码:http://www.linuxfromscratch.org/blfs/view/svn/multimedia/fdk-aac.html
x264源码:http://mirror.yandex.ru/mirrors/ftp.videolan.org/x264/snapshots/last_x264.tar.bz
x265源码:https://bitbucket.org/multicoreware/x265/downloads/
speex源码:https://www.speex.org/downloads/
yasm源码:git://github.com/yasm/yasm.git
nasm源码:https://www.nasm.us/pub/nasm/releasebuilds/2.14/
2.安装x11程序
由于我的机器依赖关系紊乱,采用手动安装,手动安装就需要解决依赖关系#@#$
在Ubuntu命令行使用sudo dpkg -i XXXX.deb安装x11对应的安装包,通过在https://packages.ubuntu.com/xenial/网站寻找依赖,然后依次安装,我的系统只需要解决部分的依赖就可以了^_^,我需要的依赖,当然依赖太多就不适合手动安装了。
sudo apt-get install x11* libxfixes-dev libxext-dev
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
libpthread-stubs0-dev_0.3-4_amd64.deb
libx11-dev_1.6.3-1ubuntu2.1_amd64.deb
libxau-dev_1.0.8-1_amd64.deb
libxcb1-dev_1.11.1-1ubuntu1_amd64.deb
libxdmcp-dev_1.1.2-1.1_amd64.deb
libxext-dev_1.3.3-1_amd64.deb
libxfixes-dev_5.0.1-2_amd64.deb
x11proto-core-dev_7.0.31-1_ubuntu16.04.2_all.deb
x11proto-fixes-dev_5.0-2ubuntu2_all.deb
x11proto-input-dev_2.3.1-1_all.deb
x11proto-kb-dev_1.0.7-0ubuntu1_all.deb
x11proto-xext-dev_7.3.0-1_all.deb
xorg-sgml-doctools_1.11-1_all.deb
xtrans-dev_1.3.5-1_all.deb
3.编译SDL2-2.0.9源码
在编译的过程中,可能会出现:
xiao@xiao-virtual-machine:~/work/study_ffmpeg/SDL2-2.0.9$ make -j4
/bin/bash build-scripts/updaterev.sh
CC build/SDL_blit_A.lo
CC build/SDL_blit_1.lo
CC build/SDL_RLEaccel.lo
CC build/SDL_blit_N.lo
^CMakefile:498: recipe for target 'build/SDL_blit_1.lo' failed
make: *** [build/SDL_blit_1.lo] Error 1
Makefile:489: recipe for target 'build/SDL_RLEaccel.lo' failed
make: *** [build/SDL_RLEaccel.lo] Error 1
Makefile:501: recipe for target 'build/SDL_blit_A.lo' failed
make: *** [build/SDL_blit_A.lo] Error 1
Makefile:504: recipe for target 'build/SDL_blit_N.lo' failed
make: *** [build/SDL_blit_N.lo] Error 1
吓得赶紧ctrl+c掉,在网上查看内存不足,需要增加交换分区https://www.jianshu.com/p/d7682a1a5eb9,这个方法太抽象,直接删除我ubuntu的里面的文件,一删删了好几个G(垃圾这么多)。
继续编译。。。
出现一些警告:
ar: `u' modifier ignored since `D' is the default (see `U')
这个链接中有解释http://patches.dpdk.org/patch/5204/
只是一个警告,继续安装。。。
sudo make install
4.安装x265源码
解压源码,cd x265_3.0/build/linux,并执行make-Makefiles.bash,如果执行失败,需要安装cmake、ccmake(cmake-curses-gui)再试
执行成功会在当前目录下生成一个Makefile,执行make -j4 && make install进行快速安装。
除了ffmpeg之外,其他安装包都是执行make -j4 && make install命令安装。
5.安装ffmpeg源码
a.解压并进入对应目录,执行如下命令:
sudo ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags=
可能会出现下面的问题:
ERROR: speex not found using pkg-config
需要安装speex库或者你的speex库没有加载到系统环境中,具体方法如下:
1.下载speex源码,解压,make -j4 && make install
2.找到speex库所在位置,将此目录加载到环境变量PKG_CONFIG_PATH中,或者直接增加到ld.so.conf.d/中,使用ldconfig一下
之后make -j4 && make install