VS2012编译FFmpeg 2.1.4
这次的目标是完整编译FFmpeg包括汇编代码,并且尽量少修改源代码。
环境是WIN7 64位,VS2012, Intel.Parallel.Studio.XE.2013.SP1
一. 安装MinGW,并编译FFmpeg, 这个网上教程有的是,没难度。编译以后的ffplay可以在MinGW的命令行下播放视频文件,但在Windows里还不行,估计还要设一些PATH变量啥的,没搞。我发现在MinGW设环境变量很容易,直接敲export PATH="$PATH:XXXX"就会保存,下次再运行就不要再设了。另外就是make install时安装的目录经常不是你指定的目录,要人工确认一下install到哪去了。
二. VS2012集成yasm,按照yasm官网上与VS2010集成的方法做就行,完全一样。需要注意的是,yasm要单独设定include path和宏(工程属性页里有)。宏在"defined symbols"里设置,格式就像:ARCH=X86;VC=1 这样写就行。
三. if (XXXX) do_xxxx;的问题。这是个关键问题,以前经常会卡在这,如果要修改代码那工作量就大了。其实VS里也可以处理这种被禁掉的代码,就是需要打开优化开关,我设了O1,同时一定注意,要关掉RTC(Runtime Check),否则优化设置不起作用,位置在C/C++ -> Code Generation -> Basic Runtime Checks, 设为Default就是关掉了。这样所有模块就都由config.h控制了,代码不用改。
四. ICC与GCC的兼容性。应该说,Intel编译器最近一直在提高与GCC的兼容能力,到目前只剩下MMX, SSE这些指令的内联汇编还不能兼容。遇到这样的文件,我的办法是把MinGW里已经编译好的.o文件拿过来,打成一个静态库(.a文件),然后在VS里链接就行了,可以直接用,不用转换成.lib文件。打包在MinGW里用ar命令完成,比如我用的是
$ ar -r avcodec_x86.a cavsdsp.o dsputil_mmx.o dsputil_x86.o idct_sse2_xvid.o ml
pdsp.o motion_est.o mpegvideoenc.o simple_idct.o snowdsp.o vc1dsp_mmx.o vp9dsp_init.o ac3dsp_init.o
还要链接libgcc.a文件(在MinGW安装目录里搜一下)。
五. 还有一个注意事项,同一个工程里的源文件不能重名,比如x86目录下很多asm文件和c文件重名,都要改掉,否则链接会出问题。
解决了以上问题应该就可以了,没谈到的问题基本网上都有解决方法,搜一搜,肯定能搞定!
VS2012编译FFmpeg 2.1.4的更多相关文章
- vs2012编译ffmpeg
从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...
- Windows 系统 vs2012 MinGW 编译ffmpeg 静态库
Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配 ...
- vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”
利用vs2012编译ffmpeg出现以下错误: libavdevice/avdevice.c(38) : error C2059: 语法错误:“.” libavdevice/avdevice.c(40 ...
- Windows下使用Visual Studio 2010编译ffmpeg全过程
在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...
- vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func
vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__st ...
- Windows下使用Visual Studio 2010 编译ffmpeg全过程
(注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛. 在linux下编译ffmpeg非常简单,而在windows下编译就不是那么容易了.一般在windows下使用M ...
- windows下用vs2010编译ffmpeg
转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...
- 【FFMPEG】Windows下使用Visual Studio 2010编译ffmpeg全过程
原文 http://www.cnblogs.com/xylc/p/3683203.html 主题 FFmpegWindowsVisual Studio ffmpeg是一个开源的多媒体库,使用非常广泛 ...
- iOS编译FFmpeg、kxmovie实现视频播放 (转载)
由于FFmpeg开源框架的功能非常强大,可以播放的视频种类很多,同时添加第三方库kxmovie,实现视频播放,真的是爽爆了,因此今天来说一下关于FFmpeg在iOS手机上的一些配置过程,配置工具,还有 ...
随机推荐
- 关于在Andoird集成开发软件中添加外部jar包的方法
步骤必须是下面的两步,少一步都不行. 第一步是存放于项目中,第二步是导入和应用于项目中. 1.右键项目-Build Path-Configure Build Path-在Libraries目录下-点右 ...
- 【转】C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
- Web 浏览
Web 浏览为了更好地了解 CGI 的概念,让我们点击一个超链接,浏览一个特定的网页或 URL,看看会发生什么. 您的浏览器联系上 HTTP Web 服务器,并请求 URL,即文件名.Web 服务器将 ...
- (转)Hdmi edid 数据解析
Hdmi edid 数据解析 (转自:http://blog.chinaunix.net/uid-20672559-id-3384035.html) 一.EDID数据格式: EDID 1.3 d ...
- js实现密码强度
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- opengl的矩阵理解
原文链接:http://blog.csdn.net/byhuang/article/details/1476199 矩阵真的是一个很神奇的数学工具, 虽然单纯从数学上看, 它并没有什么特别的意义, 但 ...
- vs中 main和_tmain的区别
用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是<iostream.h>而是&l ...
- VC++ :实现简单的文件拖放(Drag and Drop)功能
1) VC++ 6.0 新建一个基于对话框的MFC的工程,取名MfcDropFiles: 2) 去除默认的控件,包括确定/取消按钮,以及一个静态文本: 3) 在对话框空白区域拖放一个ListBox控件 ...
- 联想服务器thinkserver rd650安装 windows server 2008 r2
前几天,客户那边来电话说业务系统上不去了,远程连接发现密码也被改了,数据也没有备份出来,所以想使用 PE工具进入破解密码,具体的方法不多讲了,很多PE工具是自带更改密码的工具的,我们只要一步一步的按着 ...
- Cocos2d-x3.0触摸
cocos2d-x 3.0開始採用C++11,并開始脱离OC风格,在触摸处理上也作出了改变 C++11带来了Lambda表达式(匿名函数),它将简化程序编写,可使代码更清晰易懂 在旧2.x版本号的触摸 ...