网站建设教学廊坊,重庆市建设工程信息网项目经理解锁指南,上海建设摩托车科技有限公司官网,亚马逊跨境电商如何用vc6编译ffmpeg, 并单步调试。目前官方ffmpeg的最新版本为0.9, 我们就以此为例#xff1a;
1. 下载最新git版本的源代码(http://ffmpeg.zeranoe.com/builds/, 本例下载的是2011-12-12版本) 2. 放到MSYS环境里配置#xff0c;生成config.h文件。mingw gcc是能顺利编译…如何用vc6编译ffmpeg, 并单步调试。目前官方ffmpeg的最新版本为0.9, 我们就以此为例
1. 下载最新git版本的源代码(http://ffmpeg.zeranoe.com/builds/, 本例下载的是2011-12-12版本) 2. 放到MSYS环境里配置生成config.h文件。mingw gcc是能顺利编译通过整个项目的并生成最新版的ffmpeg。 3. 建立vc6工程把相关代码都加入到工程中。由于在vc生成的obj都在一个目录下所以需要修改文件名让其不重名。 4. 安装intel compiler 11编译器单独提取其icl.exe及相关include目录替换掉vc6自带的cl.exe, 在工程设置里加上/Qstdc99用于支持C99语法。 5. 安装intel compiler 10编译器单独提取lib目录因为此版本调试库的结构能完美支持vc6的调试信息。 6. 在vc6的options里设置include/exe/lib查找目录指向intel编译器。 7. 开始修改代码添加C99的相关linux头文件, 用于支持vc6, (unistd.h, stdint.h, inttypes.h, getopt.h) 8. 添加C99和linux的相关实现代码ffmpeg需要用到: getopt_long, strtoll, gettimeofday, atoll, usleep等 9. 修改windows的相关兼容代码GetWindowLongPtr - GetWindowLong, GWLP_USERDATA 10. 去除硬件加速libavcodec代码和依赖库代码。选择所需要的模块修改相关的allcodec.c, alldevices.c, allfilters.c, allformats.c 11. 加上链接库sdl.lib, winmm.lib, dxguid.lib, wsock32.lib 12. 在os_support.c里把winsock2.h移动到文件最前面。 13. 如果是ffmpeg, 已经能顺利编译了。如果是ffplay还需要编译静态sdl, 并链接。 14. 等等音频运行不正确有雪花声因为还需要替换所有文件里的math.h为mathimf.h, 默认的rint等数学函数和gcc不兼容。 15. ok, 大功告成纯C版本完美运行。 16. 由于ffmpeg0.9在c文件里添加了一些intel compiler不支持的mmx语法所以编译mmx/sse加速版本时一小部分.c文件需要依赖mingw gcc编译成.o文件再通过vc6的lib.exe工具转换成lib让vc6链接上。当然还要加上yasm编译的很多汇编obj. 17. 有兴趣的可以继续以此方法编译x264库官方最新代码MMX版也可以顺利通过。