ffmpeg编译过程:
1 http://ffmpeg.zeranoe.com/builds/
下载官方提供的源码,win32库和dll。
2 新建vc2005 console空工程,把ffmpeg.h,ffmpeg.c,cmdutils.c,cmdutils.h,cmdutils_common_opts.h,
ffmpeg_filter.c,ffmpeg_opt.c加到工程。
3 http://drv.nu/ffmpeg/doxygen/config_8h-source.html
从这里生成 config.h
4 从mingw下复制stdint.h和inttypes.h
5 把.h里的inline换成__inline
或
#if defined(WIN32) && !defined(__cplusplus) #define inline __inline #endif
或
project->[setting]->[c/c++]->Preprocessor definitions:编辑框里输入inline=__inline
6 找不到colorspace.h等一些文件,从源码里找到复制过来。
7 有几个系统文件找不到,注释掉config.h相关定义,如
//#define HAVE_SYS_RESOURCE_H 1
另外,需要用到socket,修改:
#define HAVE_WINSOCK2_H 1 #define HAVE_STRUCT_ADDRINFO 1
7 print_all_libs_info 里找不到什么东西,就注释掉。
8参考 http://www.cnblogs.com/zyl910/archive/2012/08/08/c99int.html
在config.h里面加上
#define PRIu64 "I64u"
#define PRId64 "I64d"
9
//#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
改成
#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.
最麻烦就是const OptionDef options[] 这个数组的初值处理,主要是里面的函数,参考ffmpeg_vc5的代码,把每一行改成这样:{ "f", HAS_ARG | OPT_STRING | OPT_OFFSET, { (void*)OFFSET(format) },
就是把原来函数的地方{.fun = xxx}改成 {(void*)xxx}。编译通过了,常规的一些输入参数都好用。复杂的还没试。
最后会提示几个链接问题,手动加上const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB];
然后,在config.h里加:
#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 是随便写的,暂时还没用上。
到此,基本就完全成功了。编译出来,运行ffmpeg -i rtsp://xxx/test.264 out.mp4
保存的质量非常好。
ffplay编译过程
ffplay编译比ffmpeg简单的多,新建工程,加上代码,稍改几行就OK了。然后ffplay rtsp,出了一个黑窗口,播放效果不错。再新生成一个mfc工程,给sdl指定一个窗口,视频就在指定窗口播放了。不过这时有个问题,拖动窗口时,视频就花掉了。估计sdl需要一些参数,以后有空再研究了。
源码下载:http://download.csdn.net/detail/sxcong/4672795
相关推荐
windows下基于MinGW编译ffmpeg之初级篇,主要是在windows环境下搭建ffmpeg的运行环境,最后编译ffplay播放器。绝对是初学者入门ffmpeg的绝佳材料。 材料里面的软件随后上传。
ffmpeg/ffplay是当今多媒体领域的王者,很多很多的人想研究学习ffmpeg/ffplay,但苦于ffmpeg/ffplay庞大的代码量,令人望而生畏。为帮助更多的人研习ffmpeg/ffplay,在保持ffmpeg/ffplay体系架构的完整性的前提下,...
ffmpeg/ffplay vc6 源码剖析
ffmpeg的代码是2012-10-10,dll,lib等都是官方的,只是把fmpeg和ffplay用vc重编译了一下。 代码没问题,如果有编译错误,应该就是找不到什么文件,自行加上就好了。我本机装了vc6,vc2005和vc2010,DirectX9,2003 DDK...
ffmpeg_ffplay_ffprobe
ffmpeg+ffplay+ffprobe2020最新
作者共享好资料。点赞!别人要10分,我这儿不要分。免费下。本书深入FFMPEG,详细介绍了FFPLAY播放的流程,以AVI文件为例,从解复用到解码,最后到SDL显示的整个过程,非常有参考价值。
FFMPEG/FFPLAY 源码剖析(附源码),VC++6.0亲测可以编译通过,VS2010也能编译通过,适合初学者
mac os系统下的ffmpeg、ffplay,无需要再编译,直接使用。 打开后直接复制文件夹内,使用命令调用。
采用2013年8月的ffmpeg源码交叉编译,在VS2010下编译ffplay.代码有删减。
ffmpeg的ffplay源码剖析,包括ffplay每一个程序文件的解释和功能描述。还包括播放器的原理、架构概述、sdl显示音频和视频压缩算法等。
FFMPEG FFPLAY 源码剖析_杨书良著_带目录高清.pdf ,ffmpeg
FFMPEG/FFPLAY源码剖析:方便可以快速的学习ffmpeg架构,迈出学习ffmpeg的第一步
FFMPEG/FFPLAY源 码 剖 析
ffmpeg/ffplay是当今多媒体领域的王者,很多很多的人想研究学习ffmpeg/ffplay,但苦于ffmpeg/ffplay庞大的代码量,令人望而生畏。为帮助更多的人研习ffmpeg/ffplay,在保持ffmpeg/ffplay体系架构的完整性的前提下,...
ffmpeg/ffplay 源码解析 最完整的全套学习资源 源码 可直接编译 目录结构如下 .\ffplay\ .\sdl\ .\src\ .\yuv\ .\ffdoc.pdf
FFMpeg_FFPlay (杨书良)
ffmpeg、ffplay应用程序,可以播放视频类和转换视频类
ffmpeg\ffplay\ffprobe
在vc++ 6.0环境下编译FFPLAY的工程,其中使用的库ffmpeg_lib是 FFMPEG0.7.0 在cygwin环境下编译的。