最近一直在研究ffmpeg,我是刚入门,在网络上得到了许多前辈们帖子的帮助。把自己知道的心得写下来,帮助那些和我一样刚入门,苦苦寻求帮助的童鞋们。
终于编译出来了ffmpeg的SDK,赶快试用一下吧。
1.首先编译出来的dll和lib同样的名字有很多,比如:
该用哪一个那,通过实验,avutil.lib和avytil-50.dll就足够了。当然网上也有很多帖子,写如何去掉版本号。我没有试。
有时间可以尝试一下。
2.我做的是音频转换,用的代码是ffmpeg工作组的例子http://www.ffmpeg.com.cn/index.php/%E4%BD%BF%E7%94%A8SDKv3%E5%AE%9E%E7%8E%B0%E9%9F%B3%E9%A2%91%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2
3.先用MSVC6建立一个工程,再加入上面链接代码保存成的c++文件。
我的目录结构是这样的:
include里面是所有编译产生的头文件
4.将需要的dll和lib文件放在MSVC的文件夹下
5.还有这个inttypes.h和stdint.h文件,我放在http://download.youkuaiyun.com/source/2808330可以下载
6.将所有的头文件的中的
#include <inttypes.h> -->#include "inttypes.h"
#include <stdint.h> -->#include "stdint.h"
注释掉所有的 #include <math.h>
7. libavutil/common.h 中加入如下代码:
# if !defined(__MINGW32__) && !defined(__CYGWIN__)
# define INT64_C(c) (c ## i64)
# define UINT64_C(c) (c ## i64)
#else
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
#endif
这样就不会出现UINT64_C的报错了。
8.MSVC的setting:
在project--》setting--》c/c++-->preprosser-->addtional include directory中加入:
c:/Program Files/Microsoft Visual Studio/VC98/MFC/SRC/
9.还有cpp文件头上,要改一下
#pragma comment(lib,"avcodec.lib")
#pragma comment(lib,"avformat.lib")
#pragma comment(lib,"avutil.lib")
否则会找不到lib文件。行了,可以了。音频文件可以任意转换了。