一、安装ffmpeg使用命令行

  1. 官网下载:http://ffmpeg.zeranoe.com/builds/
  2. 解压到你想安装的文件目录下。解压后有个bin文件夹,复制它的路径。
  3. 在系统环境变量Path中加入刚刚复制的bin路径。
  4. 在cmd中查看是否安装成功。win+R,输入cmd打开命令提示符,输入命令ffmpeg -version

Snipaste_2020-08-11_11-40-55.png
image.png
OK,安装完成,可在cmd命令符中执行ffmpeg命令。

二、在项目中调用ffmpeg的API

1. 下载ffmpeg依赖库

ffmpeg官网有static、dev和shared三个版本,我们需要下载后两个。
dev压缩包中,include是开发头文件,lib是相应库。
shared压缩包中,会用到bin目录下的dll。

2. 创建简单测试项目

建立一个空项目。

  1. #include <iostream>
  2. using namespace std;
  3. extern "C"
  4. {
  5. #include "libavcodec/avcodec.h"
  6. #include "include/libavformat/avformat.h"
  7. #include "include/libswscale/swscale.h"
  8. #include "include/libavdevice/avdevice.h"
  9. }
  10. ///由于我们建立的是C++的工程
  11. ///编译的时候使用的C++的编译器编译
  12. ///而FFMPEG是C的库
  13. ///因此这里需要加上extern "C"
  14. ///否则会提示各种未定义
  15. int main()
  16. {
  17. printf("%s", avcodec_configuration());
  18. system("pause");
  19. return 0;
  20. }

3. 配置工程环境

1、将dev解压下include和lib目录拷贝至 工程目录下
2、将shared解压下的 bin目录下dll文件也拷贝至工程目录
image.png
3、配置依赖库
头文件: 项目属性,c/c++ ,常规 附加包含目录 填加 include路径 ,注意 选择 x64
lib库:项目属性,链接器,常规,附加库目录,添加lib的路径
image.png
为了不产生电脑磁盘的路径,使用相对路径来配置($(SolutionDir)代表项目的根目录),这样移动到其他电脑上照样可以直接运行。可以通过下面“计算的值”查看路径是否正确。
附加库依赖项:右键项目,属性,链接器,输入,附加依赖项 添加
avcodec.lib; avformat.lib; avutil.lib; avdevice.lib; avfilter.lib; postproc.lib; swresample.lib; swscale.lib
当然也可以在代码中手动导入(如 : #pragma comment(lib,”avformat.lib”))

  1. extern "C"
  2. {
  3. #include "libavformat/avformat.h"
  4. #include "libavutil/time.h"
  5. }
  6. #include <iostream>
  7. using namespace std;
  8. #pragma comment(lib,"avformat.lib")
  9. #pragma comment(lib,"avutil.lib")
  10. #pragma comment(lib,"avcodec.lib")

4. 运行测试项目

注意配置要和项目属性中设置的一样:
image.png
点击本地调试器后打印出ffmpeg的配置信息,则程序运行成功。
image.png

参考
ffmpeg vs2017 环境搭建