自学 FFmpeg 的路真的比较难走,这边做下简单的记录,用来回顾用。如果你和我一样用的是 win 那么直接安装 Visual Studio 吧,不要用 CLion 啥的了,在配置环境上坑了好久还是没爬出来,这边以 VS 为例,记录 FFmpage 的配置过程。至于 VS 怎么安装,下载安装文件,无脑下一步就行,实在不懂,就去找 Google 粑粑吧

在你的计算机配置 FFmpeg

首先你需要到官网下载 FFmpeg,打开链接后你会看到如下界面,我们需要下载 SharedDev 版本,当然你可以选择自己需要的版本,为了不那么麻烦,直接下了最新版本的,可能会有 Bug 等遇到了再慢慢解决吧,毕竟爬过坑才能涨记性

KFXON6.png

下载完成后,需要把两个文件夹内的取出来放到同个文件夹下,例如 ffmpeglib-4.2.1,不要把这个文件夹放到 Program Files / Program Files(x86) 这些高权限的文件夹内,可以另外放一个文件夹,最后这个文件夹应该是下图这样的。

KFjBUx.png

放好文件夹后呢,将 bin 文件配置到系统环境中去,不懂如何配置的,出门右拐找 Google,配置完成环境后,打开终端,输入 ffmpeg 将出现如下图,说明计算机环境配置完成。如果提示 ffmpeg 指令无法识别,那么重启下就可以了。

KFjTG8.png

配置完成后,可以试下播放一个 mp4 文件, 例如输入命令行 ffplay C:\Users\kuky\Desktop\1.mp4,就可以看到视频播放啦,同时在终端输出了一些视频信息,例如创建时间等等

Kk9sPI.png

配置 FFmpeg 到项目

打开 VS 创建项目,这里选择需要选择 “控制台应用”,然后下一步,命名项目选择项目位置,点击创建稍等下就可以看见 Hello World

在引入 FFmpeg 库和头文件之前,如果你的系统是 64 位,需要做些如下的修改,首先打开 “项目 -> 属性 -> 链接器 -> 高级 -> 目标计算机” 设置为 MachineX64(/MACHINE:X64),修改完成后,打开 “生成 -> 配置管理器 -> 活动解决方案平台” 设置为 x64,再点击 “生成 -> 清理解决方案” 就可以了。

然后就是配置 FFmpeg 库和头文件了,打开 “项目 -> 属性”,分别做如下配置,这里先引入一个 avutil.lib 用来验证是否真的依赖成功,成功后再引入其他 lib 文件。首先在 “VC++目录” 下配置 “包含目录” 和 “库目录”,包含目录就是刚才下载 ffmpeg 整合文件夹中的 include 文件夹,库目录就是整合后的 lib 文件夹。配置完成后,选择 “链接器 -> 输入” 配置 “附加依赖项” 属性,这里就是 lib 文件夹下的库,只不过命名方式不同,例如在 lib 下的 libavutil 在这就是 avutil.lib,其余类似,多个 lib 库之间用换行间隔即可

配置完成后,来做下验证是否真的成功引入 avutil 库,修改代码

#include <iostream>

extern "C" {
#include <libavutil/log.h>
}

int main()
{
av_log_set_level(AV_LOG_DEBUG);
av_log(nullptr, AV_LOG_INFO, "Hello World\n");
}

运行后如果正常输出 Hello World 那么说明项目配置 FFmpeg 库成功啦~ 至于剩余的 lib 可以自行配置进去,完成后就可以愉快的继续写代码了,在接下来的时间,会有不定期的更新,记录 ffmpeg 的踩坑记录。