VS2005下ffmpeg开发环境搭建

来源:互联网 发布:acl端口 编辑:程序博客网 时间:2024/05/16 07:35

ffmepg虽然是跨平台的开发库,但是在windows下开发环境搭建比较费劲,今天尝试了一把,将主要流程记录如下,其中大部分是参考了各路网友的帖子,在此不一一列举,一并感谢了!

1、ffmpeg库文件,下载地址:点击打开链接

需要有两个,一个是shared包,一个是dev包,如下图所示



2、 打开VS编辑器,新建一个空的win 32 c++控制台应用程序

3、进入ffmpeg源码下的 doc/examples文件夹,找到metadata.c文件,该文件是一个独立demo,运行结果为打印音视频媒体文件基本信息。该文件体积还不到2k,代码行数在这几个demo里最少,看起来也容易懂。下图为metadata.c文件源码,打开该文件,拷贝里面的代码到我们新建的win 32工程,此时如果尝试编译上述代码时, 编译器会报各种各样的错误,主要错误原因还是ffmpeg在windows环境下的各种水土不服,在linux环境下好很多,没有这么多的什么数据类型不识别、宏定义缺失等等错误,下面根据错误类型,设置工程并 修改上述代码,以完成正确编译。

4、在 项目->属性->C/C++中设置头文件属性(附加包含目录)

5、在 项目->属性->链接器->常规设置lib路径(附加库目录)

6、将dev包中的include文件夹拷贝到工程目录下

7、将dev包中的lib文件夹拷贝到工程目录下

 

8、将shared包中的dll拷贝至w1目录中,或者系统的C:\Windows\SysWOW64中

下面开始编译并修改

1、出现下图错误

直接注释掉


2、在刚才注释的下面,新增下述代码:

#ifndef   INT64_C

#define   INT64_C ( c )  ( c   # #   LL )

#define   UINT64_C ( c ) ( c   # #   ULL )

#endif

3、如果此时再次编译工程,还是会有错误,错误原因是我们新建的win 32 c++工程直接调用ffmpeg的c函数库,导致c函数无法解析,对于这样由于c++和c函数名编译后命名机制不同导致无法解析的问题,只需在引用c函数库时添加 extern   "C" 即可,当然还有引用lib库


注意,测试使用的媒体文件也要放在w1目录下才能够被程序识别

0 0