#if defined(WIN32) && !defined(__cplusplus) #define inline __inline #endif或
7 有几个系统文件找不到,注释掉config.h相关定义,如
//#define HAVE_SYS_RESOURCE_H 1另外,需要用到socket,修改:
#define HAVE_WINSOCK2_H 1 #define HAVE_STRUCT_ADDRINFO 17 print_all_libs_info 里找不到什么东西,就注释掉。
改成
#define AV_TIME_BASE_Q _AVRational(1, AV_TIME_BASE)
再加:
AVRational _AVRational(int num, int den) { AVRational r = {num, den}; return r; }或者,在用到AV_TIME_BASE_Q 的地方,手写AVRational r = {1,AV_TIME_BASE };,再用上这个r.
#define AVCONV_DATADIR "c:/ffmpeg1010/" #define snprintf _snprintf #define lrint(f) (f>=0?(int32_t)(f+(double)0.5):(int32_t)(f-(double)0.4)) #define lrintf(f) (f>=0?(int32_t)(f+(float)0.5):(int32_t)(f-(float)0.4)) #define llrintf(f) (f>=0?(int64_t)(f+(double)0.5):(int64_t)(f-(double)0.4)) #define llrint(f) (f>=0?(int64_t)(f+(float)0.5):(int64_t)(f-(float)0.4)) #define log2(x) (log(x) * 1.44269504088896340736)这个AVCONV_DATADIR 是随便写的,暂时还没用上。
ffplay编译过程
ffplay编译比ffmpeg简单的多,新建工程,加上代码,稍改几行就OK了。然后ffplay rtsp,出了一个黑窗口,播放效果不错。再新生成一个mfc工程,给sdl指定一个窗口,视频就在指定窗口播放了。不过这时有个问题,拖动窗口时,视频就花掉了。估计sdl需要一些参数,以后有空再研究了。源码下载:http://download.csdn.net/detail/sxcong/4672795
原文地址:http://blog.csdn.net/sxcong/article/details/8097594