FFmpeg 怎么才能在 win7( 64 位系统)正确编译通过??? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yifeng
V2EX    FFmpeg

FFmpeg 怎么才能在 win7( 64 位系统)正确编译通过???

  •  
  •   yifeng 2014-11-23 21:50:34 +08:00 7821 次点击
    这是一个创建于 3989 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于工作需要,最近搞ffmpeg,如何才能让ffmpeg的源码在win7上正确编译通过,从网上搜集了好多资料,大都是2012年以前的教程,装了vc++6.0,编译源码提示fatal error C1083: Cannot open include file: 'SDL.h': No such file or directory
    执行 cl.exe 时出错.然后又寻找解决方案,按照教程安置SDL,最后编译还是提示原来的错误,
    初涉ffmpeg,还请前辈多关照,该批的批,该骂的骂,
    20 条回复    2014-11-24 23:35:56 +08:00
    zeayes
        1
    zeayes  
       2014-11-23 23:07:17 +08:00
    你可以去官网找下。没搞过windows下面的,linux和MAC下折腾过。
    andyhunter
        2
    andyhunter  
       2014-11-23 23:09:21 +08:00   1
    用MingW+Msys,gcc编译吧
    我记得以前这么编译过live555和ffmpeg
    sitiao
        3
    sitiao  
       2014-11-23 23:29:06 +08:00   1
    http://ffmpeg.zeranoe.com/ 上有编译好的各种版本的ffmpeg win64的lib,也有编译的教程。
    icedx
        4
    icedx  
       2014-11-24 00:23:37 +08:00   1
    为啥不直接用二进制
    icedx
        5
    icedx  
       2014-11-24 00:25:22 +08:00   1
    不过, 貌似我和楼主不在一个世界?
    http://www.cnblogs.com/dwdxdy/p/3626999.html
    ryd994
        6
    ryd994  
       2014-11-24 03:00:45 +08:00
    虚拟机linux才是快速正解
    southwolf
        7
    southwolf  
       2014-11-24 03:34:31 +08:00   1
    LZ用的是百度么233333 SDL要用1.2.x 而不是2.0.x
    hjc4869
        8
    hjc4869  
       2014-11-24 08:47:06 +08:00   1
    楼主是想作为静态库编译,还是动态库,还是直接编译ffmpeg.exe或者ffplay.exe?麻烦说清楚一些我可以直接给出建议。

    推荐的环境是VS2013+msys,其中msys只是为了执行./configure和make,真正还是cl在编译。
    顺带一提在windows下有vc这个超NB的编译器就别用gcc了……

    给一篇官方的compilation guide
    https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC
    注意如果是VS2013就不需要C99-to-C89 Converter & Wrapper了。如果要编译x64的,需要变动一下参数。

    @ryd994 虚拟机才是真的有病。
    yifeng
        9
    yifeng  
    OP
       2014-11-24 10:05:39 +08:00
    @hjc4869 谢谢指点,我想作为静态库编译,(*^__^*) ……
    yifeng
        10
    yifeng  
    OP
       2014-11-24 10:07:46 +08:00
    @andyhunter 谢谢,
    yifeng
        11
    yifeng  
    OP
       2014-11-24 10:09:28 +08:00
    @icedx O(∩_∩)O~,貌似好像曾经在一个世界过,
    yifeng
        12
    yifeng  
    OP
       2014-11-24 10:10:39 +08:00
    @southwolf 我是用的1.2
    southwolf
        13
    southwolf  
       2014-11-24 11:17:54 +08:00
    嗯 现在用VS2013编译很省事了 8楼有官方编译指南. 应该不怎么需要折腾了
    ryd994
        14
    ryd994  
       2014-11-24 12:20:10 +08:00
    @hjc4869 不好意思,configure make这套模式本来就是unix系的,vc连iso都不完全兼容算哪门子的nb。人身攻击只能证明你的无理。
    hjc4869
        15
    hjc4869  
       2014-11-24 12:38:14 +08:00   1
    @ryd994
    vc编译的ffmpeg我用了几年了都没问题,configure make又不是不能在windows下用,完全可以用原生的一套搞定的事情非要去用linux,不是有病是什么?
    难道
    下载ffmpeg->下载msys->下载vc编译器->编译

    下载Virtualbox/VMware/安装Hyper-V->下载Linux并安装->下载gcc,make->下载ffmpeg源码->编译
    更加麻烦?

    而且楼主要的是Windows x64下能用的静态库,貌似是要搞Windows程序,你让他开Linux虚拟机?

    这是在描述事实,不是人身攻击。

    附VC是哪门子NB:
    t/147665
    ryd994
        16
    ryd994  
       2014-11-24 21:49:10 +08:00 via Android
    @hjc4869 如果你觉得这年头虚拟机不是标配,或者下载一个别人做好的镜像然后导入运行也叫麻烦的话,那我也是醉了。Linux交叉编译Windows二进制,对Unix软件来说,是很常见的事。说起原生,对ffmpeg来说,Linux才更原生。
    你附的帖子没证明任何东西。我的point是VC连ISO都不完全遵守,你给我来个内存占用小,呵呵。
    最后,关于人身攻击的定义,请谷歌一下。任何不与问题直接相关,却与对方身份直接有关的,就是人生攻击。简单来讲,就算我有病,也不证明我说的论点是错的。
    hjc4869
        17
    hjc4869  
       2014-11-24 23:07:22 +08:00
    @ryd994
    虚拟机是标配,您是Mac用多了吗。。Windows本来可以直接很方便地编译,官方都有VC编译的教程了,为何要自己去搞一套官方都不support的去交叉?这不是闲着蛋疼?
    难道您要说:“gcc编译出的binary跑的比vc编译的快”?
    对于楼主想要的Windows软件,VC才是真正的原生。
    另外一个编译器能够那么轻松地爆掉内存swap,怎么拿来跟VC比,已经不在一个数量级了啊……
    我的point是VC跟UNIX一套比起来很NB,不是它遵守不遵守标准,这都不是一个问题,目前是编译现有的代码,而这份代码是主动官方兼容VC的,只需要知道这个就行了,扯什么标准不标准?


    楼主想要哪个自己挑吧,我也不想继续争论了。
    Windows vs *nix的争论根本不可能有尽头。
    ryd994
        18
    ryd994  
       2014-11-24 23:29:38 +08:00 via Android
    @hjc4869 crosscompile是官方最早支持的好吧
    gcc o3和VC比,速度谁快还真不好说
    爆内存这种事情我是从来没见过,openwrt和gentoo,哪个不够大?从来没有内存不够用
    连ISO都不comply那就叫不及格好吧
    我没有说哪个好的意思,但是既然现在楼主Windows下搞不定,虚拟机Linux不失为快速解决问题的办法。不要随便generalize好吧
    hjc4869
        19
    hjc4869  
       2014-11-24 23:30:33 +08:00
    @ryd994 您又怎么知道楼主按照官方的guide不能搞定windows编译的问题呢?
    ryd994
        20
    ryd994  
       2014-11-24 23:35:56 +08:00 via Android
    @hjc4869 你这样我也是醉了,
    人家的是出错怎么办,你说你的方法,我说我的方法,你偏要人身攻击然后扯到WindowsLinux上去。我在Windows上编译这类软件的经验就是没一次顺利的。确实错误都能解决,最后能出来,但是问题一个接一个,我是真心累了。我是累了,您老随意吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     865 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 19:44 PVG 03:44 LAX 12:44 JFK 15:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86