没得话讲,先在官网下载对应的源码,下载dev/文件夹下的源码和静态链接库  ,下载/shared文件夹下的动态链接库

官网地址:https://ffmpeg.zeranoe.com/builds/win64/

1.首先在vs2017下新建一个console项目

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

2.设置工程的属性

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

3.添加include头文件目录

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

4.然后再添加静态链接库的包含目录

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

5.添加静态库的名字

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

这里我给出静态链接库名

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
 
6.之后再到ffmpeg-4.1.1-win64-dev\examples\目录下随便拷贝一个实例
到新建的工程中去,我将源码拷贝到主函数所在的文件中;如下图所示
ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP
 
 
7.在这里注意,要以C的方式编译头文件<libavcodec/avcodec.h>,否则c++编译器会报错
extern "C"
{
#include <libavcodec/avcodec.h>
}

还有一点要注意,就是将源码中的fopen()函数全部改成fopen_s();这是编译器提醒的所以  fopen_s();

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

我们可查看fopen_s()的源码,发现如图

所以fopen_s(&f,filename, "w") 相应的该即可

8.之后编译我们所建立的工程,发现如下

这是因为缺少动态链接库的原因,毕竟使用动态链接库有很多好处

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

10.将shared目录下的文件拷贝到我们所新建的工程中的debug目录下,

ffmpeg-4.1.1-win64-dev在vs2017的搭建-LMLPHP

ok,到此为止,工程建立完毕,可以学习ffmpeg的源码了

05-02 15:35