音视频技术应用(3)-Linux编译x264,x265,fdk-aac, ffmpeg 测试并运行

本文测试的环境为 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

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

2. 编译x264

首先下载x264的源码:

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

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

执行make -j16

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

执行make install

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

3. 编译x265

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

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

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

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

执行:./make-Makefiles.bash

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

PS: 若编译时提示:

需要安装cmake-curses-gui:

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

make-j16

make install

这样x265就编译完了。

4. 编译fdk-aac

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

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

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

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

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

apt-get install autoconf automake libtool -y

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

同时也得到了configure文件:

下面更新一下配置项:

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

make -j16

make install

这样fdk-aac就编译好了。

5. 编译ffmpeg

首先下载ffmpeg的源码:
链接: https://pan.baidu.com/s/16AZP8wxHiDgY3jyQ8GhWfQ 提取码: 3sjv 

下载完成后解压,并定位到ffmpeg的当前目录:

配置configure 文件,生成makefile

./configure --enable-shared --prefix=/usr  --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265

make -j16

make install

这样ffmpeg就编译好了。

6. 测试ffmpeg是否能在linux环境下正常运行

将先前在windows环境编译好的first_ffmpeg项目拷贝到linux环境下:

我们为这个项目编写一个简单的makefile 用于编译 first_ffmpeg.cpp

first_ffmpeg:first_ffmpeg.cpp
    g++ $^ -o $@ -lavcodec
first_ffmpeg:first_ffmpeg.cpp   // 冒号后面代表的是依赖项
$^
                  // 表示提取依赖项
$@                  // 表示编译的目标项,这里就是first_ffmpeg.

执行make 指令,并且执行./first_ffmpeg, 如果能够看到下列log信息,则说明ffmpeg 已经可以正常编译并运行了,。

PS:  如果提示x265 库找不到,则执行:cp /usr/local/lib/libx265.x /usr/lib  将x265的库由/usr/local目录拷贝到/usr/lib目录下。x265当前默认编译在usr/local/lib目录下。

<完>

posted @ 2021-11-08 23:20  夜行过客  阅读(1333)  评论(0编辑  收藏  举报