注意: 本文中所使用的visual studio为 community 2017 版本,ffmpeg为3.3.1 版本,如有出入请先核对版本信息
一、缘起
以前经常需要在Windows平台上使用visual studio来调试容器相关部分的模块,因为容器部分都是平台无关的代码,而且visual studio的单步调试等功能非常强大,可以很方便的查看内存数据,变量值等等信息。 而有时又需要使用到ffmpeg开源库的容器部分,不管是作为项目实际的容器支持,还是作为对比数据。都有必要在visual studio环境下调用ffmpeg来完成特定功能,可能只是简单的容器部分读取数据,也可能包括ffmpeg的解码等组成一个简单的播放器。 所以需要配置运行环境,这里记录下来。不但可以作为备忘,还可以让有缘人得之从而获得微薄的的帮助。
二、下载ffmpeg的Windows版本
http://ffmpeg.zeranoe.com/builds/ 这个官网上提供了Windows版本的ffmpeg,根据需要求选择所需的版本。当然也可以从ffmpeg的官网的download页面中http://ffmpeg.org/download.html ,选择Windows进入http://ffmpeg.zeranoe.com/builds 网站。
在这个下载页面中有如下界面:
第一列为Version列的第一项为:nightly Build版本,第二项为: 目前最新的release的稳定版本
第二列表示多少位的操作系统
第三列罗列出了 静态库,动态库,以及开发库
这里我们需要下载 shared和Dev 两个库,至于version和Architecture就根据自己的实际情况选择。
都是压缩文档,shared大概有17.2 MB左右, Dev要小很多:1.71MB 左右
三、安装ffmpeg
3.1 解压并安装ffmpeg
说的高大上一点是安装,其实就是将下载好的shared和Dev两个压缩包解压到特定位置。
其中shared压缩包解压出来之后目录下有如下内容:
Dev压缩包解压出来之后目录下有如下内容:
其实这两个压缩包中有很多重复部分,有:doc目录,license目录,README.txt等。
我们要做的就时将这两份内容放到一个特定目录中(我这里是将两份内容合二为一放在一个目录,当然也可以放在两个不同的目录当中),比如我这里选择的目录是:“D:\ProgramFiles\ffmpeg”,安装好之后,此目录下的内容如下:
3.2 设置环境变量
需要将放置ffmpeg库的目录下的 bin 目录的路径设置到Windows环境变量中的PATH 中, 如果不知道怎么设置PATH的话,出门左转,问问度娘就明白了。
我这边需要设置的路径为: D:\ProgramFiles\ffmpeg\bin
设置这个PATH环境变量的作用:
shared包中的bin目录下带有ffmpeg, ffplay,ffprobe三个可执行文件,设置好环境变量之后,就可以在命令行使用这些命令进行播放,转码,查看信息等动作了
ffmpeg的动态库(dll文件)都在这个bin目录下,为了在使用visual studio调试或直接运行程序的时候不用拷贝这些动态库到编译出来的执行档目录下。就需要将这个目录设置到PATH环境变量中去。因为在可执行程序运行时Windows寻找动态库的顺序是:
- 1、当前exe目录下
- 2、当前进程目录下
- 3、系统system目录下
- 4、windows目录下
- 5、环境设置(PATH变量)的路径下
四、配置Visual studio
这里为了避免每次创建一个项目都需要反复这是 头文件目录,库文件目录,就需要设置visual studio项目属性页中的”VC++ 目录”。
形如下图所示:
其中以 D:xxx 开头那两项黑体字部分,就是我们需要做修改的地方。
库目录比较简单只需要添加: D:\ProgramFiles\ffmpeg\lib 即可
有文件稍多一点,具体添加内容如下:
最后就是根据需要设置被依赖到的库,当然为了简单你也可以向所有库有填上。 这一项是在上面的属性页面中“链接器 ——>输入 ——> 附加依赖库”中添加。 全部的库名如下:
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib
注:
- 依赖库是和具体项目相关的,所以每个项目都需要单独填写;
- 上面的“包含目录”,“库目录” 是全局的,填写一次就可以了,对新建的项目,以及新的解决方案中的新项目均有效;
- 上面的“包含目录”,“库目录” 是和上面属性页中的 “配置(C):” 和 “平台(P):” 两项是相关的,不同的组合都需要不同的上设置,“配置(C)”里面的选项是release,debug等选项,“平台(P):”当中是X64,Win32等选项。 “配置(C)”可以直接选为“所有配置”,这样可以少一种组合。我这里下载的是64 bit版本的,所以“平台(P):”需要选择“X64”这一项。当然也可以下载32bit的。根据自己的需求或想法下载就可以了。