VS2010下FFmpeg开发环境的搭建

通过学习雷神的博客和视频,忙活了一下午加半晚上,终于完成了VC下FFmpeg开发环境的搭建,其实雷神的介绍已经很详细了,下面是结合雷神的材料和我在环境搭建中遇到的问题进行一下总结,并作出更加详细的搭建步骤,以便大家相互学习和以后方便自己查看。以下工程是在vs2010环境下。

• 新建控制台工程 ▫ 

打开VC++ ▫ 文件->新建->项目->Win32控制台应用程序 

注意,在建工程的过程中一定要选中 附加选型:预编译头 这一项,见下图

VS2010下FFmpeg开发环境的搭建_第1张图片

• 拷贝FFmpeg开发文件

 ▫ 头文件(*.h)拷贝至项目文件夹的include子文件夹下 ▫ 导入库文件(*.lib)拷贝至项目文件夹的lib子文件夹下 ▫ 动态库文件(*.dll)拷贝至项目文件夹下 

PS:如果直接使用官网上下载的FFmpeg开发文件。则可能还需要将MinGW安装目 录中的inttypes.h,stdint.h,_mingw.h三个文件拷贝至项目文件夹的include 子文件夹下。 ( 如果没有安装MinGW,可以自行搜索安装,这里不再介绍。)然后手动把这3个文件加入工程的头文件中,在_mingw.h文件的结尾处(在#endif 一行之前)添加了一行:
#define __restrict__

如图

VS2010下FFmpeg开发环境的搭建_第2张图片

• 配置开发文件 ▫ 

打开属性面板  解决方案资源管理器->右键单击项目->属性 ▫ 头文件配置  配置属性->C/C++->常规->附加包含目录,输入“include”(刚才拷贝 头文件的目录) ▫ 导入库配置  配置属性->链接器->常规->附加库目录,输入“lib” (刚才拷贝库文 件的目录)  配置属性->链接器->输入->附加依赖项,输入“avcodec.lib; avformat.lib; avutil.lib; avdevice.lib; avfilter.lib; postproc.lib; swresample.lib; swscale.lib”(导入库的文件名)


• 测试 

如果是C语言中使用FFmpeg,则直接使用下面代码 # include " libavcodec / avcodec.h " 如果是C++语言中使用FFmpeg,则使用下面代码 

#define __STDC_CONSTANT_MACROS 

extern "C" { #include " libavcodec / avcodec.h " } 

main()中调用一个FFmpeg的接口函数  例如下面代码打印出了FFmpeg的配置信息 

int main( int argc , char* argv [])

{

 printf ( " % s", avcodec_configuration ());

 return 0; 

}

修改好以后主函数文件是这样的

// ffmpegtest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include "stdafx.h"
#define __STDC_CONSTANT_MACROS
extern "C"
{
#include "libavcodec\avcodec.h"

};

int _tmain(int argc, _TCHAR* argv[])
{
		printf ( " % s", avcodec_configuration ()); 
		return 0;
}


现在可以运行了,运行以后会出现下面的错误提示

VS2010下FFmpeg开发环境的搭建_第3张图片

然后找到错误的代码位置

extern __inline__ intmax_t __cdecl imaxabs (intmax_t j)
	{return	(j >= 0 ? j : -j);}
imaxdiv_t __cdecl imaxdiv (intmax_t numer, intmax_t denom);

/* 7.8.2 Conversion functions for greatest-width integer types */

intmax_t __cdecl strtoimax (const char* __restrict__ nptr,
                            char** __restrict__ endptr, int base);
uintmax_t __cdecl strtoumax (const char* __restrict__ nptr,
			     char** __restrict__ endptr, int base);

intmax_t __cdecl wcstoimax (const wchar_t* __restrict__ nptr,
                            wchar_t** __restrict__ endptr, int base);
uintmax_t __cdecl wcstoumax (const wchar_t* __restrict__ nptr,
			     wchar_t** __restrict__ endptr, int base);

然后把__inline__删除,然后把nptr和endptr前面的空格去掉(我也不知道为什么我的这个inttypes.h文件里为什么会出现空格错误,我是直接从安装的MinGW下靠过来的,雷神给的内容上可能不太一样,以为我的版本可能比较新)然后保存,运行。

 如果运行无误,恭喜你,代表FFmpeg已经配置完成啦1



你可能感兴趣的:(ffmpeg,Visual,Studio,2010,音视频处理)