编译ShIftMedia_ffmpeg备忘

以前在国外编译FFMPEG,用MINGW+MSYS2,方便极了,我这个纯业余菜鸟照着网上教程一遍过。回国后,MINGW就用不了了,只能另寻他法,后来就知道了Shift_Media可以在vs下编译,而且不需要特别强的专业水准,于是我就尝试自己做。经过一个多月时间才算编译通过。

经验:

1。建一目录,放置两个文件夹。其中一个是为存放编译出来的的库文件,文件夹名msvc(好像必须这么命名,过了太久,忘了)另一个是source。在source下放置shiftmedia工程文件夹。

2。在ffmpeg下的SMP文件夹里有VS工程文件,还有两个批处理文件,名字带sdk是用来下载最新版的WIND SDK的。我手动下的,包括DX SDK,全部安装。vs2019里还真没有。名字带dependencies那个是依赖库,管理员权限下自动下载,网上大神文章里说这部分可以自动下载安装,然后就一切OK了,我本着小白从不说谎的精神,辟谣一下,绝对不可能,这个库的确可以自动下载,但是绝对不可能自动编译通过,原因很简单,因为库根本就不全,这些库本身就是一个库依赖着另一个库,比如libgcrypt,libgnutls本身就依赖很多库,你要缺一个库,不好意思,工程卡在这都不会报错的。而且自动下载这个批处理要运行很长时间,我的学习机级别的电脑整整下了一夜。后来编译出来好几百个错(我可以确定全部下载完成的情况下),然后再一编译又没问题了,似乎问题解决了,但事实上,到库输出目录一查,很多东西根本就没编译出来。于是我手动把shiftmedia库全部手动下载下来了,然后解压。但他们做得比较缺德,每个文件夹都带一个master字样,而且是子文件夹部分得单提取出来放一个文件夹里,没办法,我自己做了一个遍历程序(以前做过类似程序),提取并放置到一个文件夹编译。最后几乎全是手动编译,并从网上下了好多依赖库才把这些库单独都编译通过。编译libgnutls,第一遍报百余处错,然后各种处理,把它需要的依赖库挨个编译通过后,再把他的各个文件重新组织一遍,好不容易通过。至于CUDA,opengl库等等等等,简直不要太麻烦。

3。费了九牛二虎之力,子库总算全部编译通过了,然后ffmpeg各lib,DLL也都有了。百分之百没问题了。开始编译ffplay,等程序,编译完就就提示找不到exe程序。吓我一跳,以为失败了。我后来发现文件在输出目录的x64目录下,因为我编译的是64位版本的。然后就TM爽翻了,我付出这么大辛苦,突然发现是值得的。因为可以有现成的例子研究怎么解码,播放的。以前用Mingw确实快,半个小时全搞定。但真不知道解码是怎么个过程。现在设个断点,然后整个过程就很清晰了。

4。由于ffmpeg依赖的库很多是别人的,所以研究他的库,最好是先研究一下其依赖库是怎么玩的。整个库编译完有8个G左右。还有一些东西没搞的情况下就已经这么庞大了,不知道编译全了会是怎样一种情况

写完,以后如果再编译,再有经验再补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值