V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yifeng
V2EX  ›  FFmpeg

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

  •  
  •   yifeng · 2014-11-23 21:50:34 +08:00 · 7200 次点击
    这是一个创建于 3441 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于工作需要,最近搞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:
    https://www.v2ex.com/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   ·   我们的愿景   ·   实用小工具   ·   5379 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:05 · PVG 15:05 · LAX 00:05 · JFK 03:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.