如何用visual studio来开发基于ffmpeg的程序呢?
开发环境: Win10 + visual studio 2010
首先需要下载windows版的ffmpeg的库: 下载地址 https://ffmpeg.zeranoe.com/builds/。其中Dev包含的是开发ffmpeg程序所需要的头文件和链接库,在编译时会用到;Shared包含的是运行程序时调用到的ffmpeg的动态库,在运行时用到。这两个都要下载,如下图:
下载的两个包分别为ffmpeg-20180529-ea0010b-win32-dev.zip 和 ffmpeg-20180529-ea0010b-win32-shared.zip,分别解压。dev包里面包含了include目录和lib目录,这是开发ffmpeg程序需要包含的。examples目录时一些示范code,我们选择其中的decode_video来编一个简单解码程序。
一、在dev目录下,新建src目录,将examples里的decode_video.c复制到src目录;新建build目录,待会将visual studio工程保存到此目录下;新建bin目录,将编译生成的exe存到此目录,目录结构如下:
二、建立visual studio工程
三、添加文件,配置环境,编译
1、在资源管理器中添加decode_video.c。
2、配置include目录和lib目录
include目录
lib目录
将lib库加入到链接选项中:
注意:1、在编译前,需要下载inttypes.h放到inc目录下。
2、编译时error.h会报inline错误,在error.h的头部添加如下宏定义
#if defined(WIN32)
#define inline __inline
#endif
3、链接decode_video.c时会报错,snprintf找不到标识符,在decode_video.c头部添加宏定义
#if _MSC_VER
#define snprintf _snprintf
#endif
现在可以编译通过了。但是运行时提示缺少avcodec.dll,需要将ffmpeg-20180529-ea0010b-win32-shared.zip中的dll解压到执行文件所在目录下。
本文所描述的可以正常编译运行的ffmpeg工程放在了github上,地址 https://github.com/ronnielige/vs_ffmpeg_dev