1:官网下载ffmpeg相关库,dev,shared。在Dev里面主要是一些头文件和lib,在shared版本里主要是dll文件。
(方便下载速度,提供自己上传链接。https://download.csdn.net/download/wenhuadream/12330743。同时上传了些相关工具。推荐官网下载)
2:新建vs工程.(网上大多数从win32新建,vs2019没win32选项,可从windows桌面向导处新建。)
3:将dev下的include与lib文件夹拷贝到工程目录。
4:将shares-bin中的所有dll拷贝到工程目录。
工程目录结构如下图:
5:配置包含目录和lib依赖。
a:配置ffmpeg包含目录。 右键项目->属性->c/c++->常规->附加包含目录。填入 include (即FFmpeg的.h目录)。
b:配置ffmpeg的lib依赖。 右键项目->属性->链接器->常规->附加库目录。填入 lib (即FFmpeg的lib目录)。
c:右键项目->属性->链接器->输入->附加依赖项中填入根目录下的dll文件。
5:添加工程main函数。工程目录->源文件->添加->新建项->c++文件。
添加main函数测试入口。
//程序入口
#include <iostream>
#include <string>
extern "C"
{
#include <libavformat/avformat.h>
}
//第二个形参argv是一个数组, 它的元素是指向C风格字符串的指针;第一个形参argc表示数组中字符串的数量。
//当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串,
//接下来的元素依次传递命令行提供的实参。所以当使用argv中的实参时,
//一定要记得可选的实参从argv[1]开始,argv[0]保存程序的名字,而非用户输入
int main(int argc, char* argv[])
{
av_register_all();
system("pause");
return 0;
}
//如果函数的返回类型不是void,那么它必须返回一个值。但是这条规则有个例外:我们允许main函数没有return语句直接结束。如果控制达到了main函数的结尾处而且没有return语句,编译器将隐式地 一条返回0地return语句。
//main函数的返回值可以看作是状态指示器。返回0表示执行成功,返回其他值表示执行失败,其中非0值的具体含义由机器决定。
6:右键项目->c/c++->常规-> SDL检查 改为 否。否则项目运行会报错。
7:运行。
不报错即通过。完毕。