ffmpeg常用头文件和库文件包含

在VC2008上用ffmpeg常用文件包含:

当然不太全,需要的时候在添加包含文件;

 

//VC中可能用到的一下宏定义,一般这些宏定义在stdint.h中有,如果没有可以添加;这里添加到ffmpeg包含头文件前定义就可以了;

 

#define snprintf _snprintf
 

 

extern "C"
{
#ifdef __cplusplus
 
 
  //C99整数范围常量. [纯C程序可以不用, 而C++程序必须定义该宏.]
  #define  __STDC_LIMIT_MACROS
 
  //C99整数常量宏. [纯C程序可以不用, 而C++程序必须定义该宏.]
  #define  __STDC_CONSTANT_MACROS
 
  // for int64_t print using PRId64 format.
  #define __STDC_FORMAT_MACROS
 
//解决错误:错误处理error C4996: 'fopen': This function or variable may be unsafe
//#define _CRT_SECURE_NO_DEPRECATE //这个定义需要放到FFmpeg的c文件中,或者最好定义在vs的(全局工程可以应用):
	   //	项目->属性->配置属性->C / C++->预处理器->预处理器定义,增加: 		_CRT_SECURE_NO_DEPRECATE
 
//直接复制到:预处理器定义
//	;__STDC_LIMIT_MACROS;__STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;_CRT_SECURE_NO_DEPRECATE;
 
 
    #ifdef _STDINT_H
      #undef _STDINT_H
    #endif
 
 
  #include <stdint.h>
 
 
#endif
}

 

 

#ifdef __cplusplus

extern "C"
{

#endif


#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>
#include <libavutil/opt.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>

 

#ifdef __cplusplus
}

#endif


#pragma comment(lib,"avcodec.lib")
#pragma comment(lib,"avdevice.lib")
#pragma comment(lib,"avfilter.lib")
#pragma comment(lib,"avformat.lib")
#pragma comment(lib,"avutil.lib")
#pragma comment(lib,"postproc.lib")
#pragma comment(lib,"swresample.lib")
#pragma comment(lib,"swscale.lib")

#define M_PI 3.1415926
#define snprintf _snprintf

 

 

同时:也可以将FFmpeg的 bin目录添加到环境变量中,这样就可以自动搜索dll路径了;也可以直接命令行用FFmpeg.exe了;

 

上面讲述了直接在C++中用ffmpeg,这里在说一个更加方便的方法:就是在C++中混合C,在C文件中编写ffmpeg代码,然后在C++中调用;

简单方法,就是一个.h+.c; 头文件 extern "C" 包含;

这里要注意的是,在c文件的方式添加ffmpeg头文件前,先添加  #define inline __inline; 因为c中的inlien和C++中不同;

 

示例:

 

// testC.h文件

 

#ifdef __cplusplus

extern "C"
{

#endif

 

void show();

 

 

#ifdef __cplusplus
}

#endif

 

 

 

 

//testC.c文件

void show()

{

     printf(" Hello world! ");

}

 

如果想要避免头文件中的 所需要的头文件包含,可以在C文件中添加包含头文件, 头文件中的函数已 void * 作为参数与C文件交互,在C文件中转换相应指针;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chinabinlang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值