音视频技术应用(3)-Linux编译x264,x265,fdk-aac

本文测试的环境为 ubuntu18.06, 下载地址:http://mirrors.aliyun.com/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso

1. 安装可能用到的工具链

打开终端,执行下列指令,安装所有用到的工具链:

sudo -i apt-get install make cmake g++ nasm yasm diffutils pkg-config -y

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

-y 表示不必每次询问,每次都是yes

2. 编译x264

首先下载x264的源码:

链接: https://pan.baidu.com/s/116ctuWFJcOUdBPSdujST8g 提取码: 5eug 

下载完成后解压,然后 cd 到 x264的当前目录下打开终端,执行下列指令:
执行配置项:
./configure --enable-shared --prefix=/usr

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

执行make -j16

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

安装到usr 目录下,之所以安装到usr目录下是因为linux的系统环境变量默认已经支持该路径。

执行make install

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

可以看到x264已经顺利安装到/usr目录下,这样x264就编译好了。

3. 编译x265

接下来编译x265,首先下载x265的源码:

链接: https://pan.baidu.com/s/1PjQD_ZOri_HSVY9pcRLgQg 提取码: i3a2 

下载完毕后解压,然后定位到x265的build/linux目录:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

可以看到x265提供了一个名为make-Makefiles.bash 的文件用于自动生成Makefile, 下面执行该文件生成Makefile:

执行:./make-Makefiles.bash

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

执行完毕后发现当前目录下已经可以生成了Makefile文件:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

PS: 若编译时提示:
音视频技术应用(3)-Linux编译x264,x265,fdk-aac

需要安装cmake-curses-gui:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

然后在运行上面的 ./make-Makefiles.bash 脚本,就没得问题了, 最后就是 make:

make-j16

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

make install

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

这样x265就编译完了。

4. 编译fdk-aac

首先下载fdk-aac的源码文件:

链接: https://pan.baidu.com/s/1HYj8gkLBDhd4N8FKgi9Tiw 提取码: nskj

下载完成后解压,然后定位到fdk-aac的根目录:‘

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

执行./autogen.sh, 以生成configure文件:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

若提示 autoreconf not found, 则需要安装automake 工具,使用下列指令安装这些工具:

apt-get install autoconf automake libtool -y

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

再次执行./autogen.sh 就不会报错了:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

同时也得到了configure文件:

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

下面更新一下配置项:

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

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

make -j16

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

make install

音视频技术应用(3)-Linux编译x264,x265,fdk-aac

这样fdk-aac就编译好了。

<完>

上一篇:map容器的用法:


下一篇:程序员周刊(第4期):程序员的财富观