VS2013中配置FFMPEG开发环境
Static --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,此三个文件可以调用相应的ffmpeg命令行对视频流进行处理。
Shared --- 除了ffmpeg.exe , ffplay.exe , ffprobe.exe之外还有一些DLL,提供相应的视频处理动态库文件,在运行时到相应的DLL中调用功能。
Dev --- 开发者(developer)版本,里面包含了库文件xxx.lib以及头文件xxx.h,用于vc++程序编译的静态库链接。
vc++中经常用到的是Shared(*.dll)和Dev(*.lib;*.h),头文件,动态库文件
1、打开 Visual Studio 2013,新建项目,选择 Visual C++ 中的 Win32 控制台应用程序,进入 FFmpeg 源码文件夹下的 doc/examples 文件夹,找到 metadata.c 文件,运行结果为打印音视频媒体文件基本信息。用此文件作为测试程序,建立的c++控制台程序项目如下:
在 Visual Studio 中的项目名上右击,打开属性,分别设置 配置属性 -> C/C++ -> 附加包含目录 和 配置属性 -> 链接器 -> 附加库目录,配置相应的include,lib目录文件路径,用于动态链接,如下图所示:
在附加依赖项中加入相应的lib库文件
第二步解压的 32-bit Shared 文件夹下的 bin 文件夹中的 avcodec-56.dll、avformat-56.dll、avutil-54.dll 和 swresample-1.dll 拷贝到与解决方案同名的项目文件夹中
编译成功的画面如下图
命令行下编译此程序如下:
提示 cannot open include file 'libavformat/avformat.h',no such file or directory
将相应的.h ,.lib文件复制到项目目录下:
提示错误:
consoleapplication2.obj : error LNK2019: unresolved external symbol _av_dict_get referenced in function _main
consoleapplication2.exe : fatal error LNK1120: 1 unresolved externals
缺少相应的链接 .lib文件,补全相应的链接文件 ,link consoleapplication2.obj avformat.lib avcodec.lib avutil.lib
编译通过
运行程序结果如下: