http://blog.sina.com.cn/s/blog_6125d067010168dt.html

工作中用到了ffmpeg x64。 发现编译出来x64的ffmpeg,很不容易。特记录下来。
原计划编译 静态库, 发现静态库,在vs2010调用过程中,总是出现莫名其妙的错误。 后来发现官网上 有编译好的 动态库。 在AAC解码过程,出现杂音。 应该是它的一个bug。 所以决定重新编译个。

一. 准备
编译X64的需要mingw-w64 + msys
1. 下载 mingw-w64
2. 下载 msys
3. 编辑 msys 下 /etc/fstab 加入 c:/mingw64        /mingw
(注:我的mingw64放在c:/)
4. 编辑 msys.bat. 在文件的开头 加入
call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
5. 应该用到 yasm 工具。 这个记不清了。 下载yasm x64位的。 如果没有,下载32位的也行。 放到 msys/bin下。

二. 编译

1. Zlib 1.2.7

下载源代码 http://zlib.net/ 解压后:

1. cd zlib-1.2.7/

2. 修改 win32/Makefile.gcc 文件:

PREFIX = x86_64-w64-mingw32-

(注:在/mingw/bin中,最好将所有的.exe复制一份 以x86_64-w64-mingw32-开头的文件 )

3. make -f win32/Makefile.gcc

4. cp -iv zlib1.dll /mingw/bin

5. cp -iv zconf.h zlib.h /mingw/include

6. cp -iv libz.a /mingw/lib

2. libgsm 1.0.13-3

下载源代码, http://libgsm.sourcearchive.com/, 解压后:

1. cd gsm/
    2 修改Makefile,

添加 PRIFIX=x86_64-w64-mingw32-

CC  = ${PRIFIX}gcc -ansi -pedantic

AR  = ${PRIFIX}ar

RANLIB   = ${PRIFIX}ranlib

3. make

编译到一半的时候出现 fchmod 和 fchown 的编译错误,不管它,继续执行:

4. mkdir /mingw/include/gsm

5. cp inc/gsm.h /mingw/include/gsm

6. cp lib/libgsm.a /mingw/lib

3. LAME 3.99.5

下载源代码, http://sourceforge.net/projects/lame/files/lame/, 解压后:

  1. ./configure --prefix=/mingw --enable-expopt=full --host=x86_64-w64-mingw32 --enable-static --disable-shared 
  2. make  
  3. make install  
4. LIBOGG 1.3.0

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure --prefix=/mingw  --host=x86_64-w64-mingw32 --enable-static --disable-shared
  2. make
  3. make install

5. LIBVorbis 1.3.3

下载源代码,http://xiph.org/downloads/,解压后:

1. ./configure --prefix=/mingw --host=x86_64-w64-mingw32 --enable-static --disable-shared    2. make

3. make install

6. LIBSpeex 1.2rc1

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure --prefix=/mingw --host=x86_64-w64-mingw32 --enable-static --disable-shared
  2. make
  3. make install

7. LIBTheora 1.1.1

下载源代码,http://xiph.org/downloads/,解压后:

  1. ./configure --prefix=/mingw  --host=x86_64-w64-mingw32 --enable-static --disable-shared
  2. make
  3. make install

下载源代码,http://www.audiocoding.com/downloads.html,解压后:

首先编辑 Makefile.am 文件,将第一行改为

SUBDIRS = include libfaac

然后修改configure.in文件,找到最后一段的 AC_OUTPUT, 修改为

AC_OUTPUT(libfaac/Makefile include/Makefile Makefile)

执行:

1. ./bootstrap
    2. ./configure --prefix=/mingw  --host=x86_64-w64-mingw32 --enable-static --disable-shared   3. make

4. make install

本文9. xvidcore 1.3.2

下载 xvidcore-mingw-w64-master ,这个是针对mingw-w64的一个版本,官网上的编译不过。解压后:

  1. cd xvidcore/build/generic
  2. ./configure --prefix=/mingw  --host=x86_64-w64-mingw32 --enable-static --disable-shared

执行到这里后,搜索xvidcore/build/generic 目录下面所有文件中的

-mno-cygwin 这个选项, 这个选项已经不被GCC支持,全部删除后继续。

  1. make
  2. make install
  3. cp -iv \=build/xvidcore.dll.a /mingw/lib/libxvidcore.dll.a

10. x264 snapshot-20120830-2245

下载源代码,http://www.videolan.org/developers/x264.html,解压后:

  1. configure --prefix=/mingw --enable-win32thread --extra-cflags="-DX264_VERSION=20100422" --host=x86_64-w64-mingw32 --enable-static --disable-shared  --cross-prefix=x86_64-w64-mingw32-
  2. make
  3. make install
  4. cp -iv x264.h x264_config.h /mingw/include
  5. cp -iv libx264.a /mingw/lib
  6. cp -iv x264.pc /mingw/lib/pkgconfig

编译ffmpeg 0.11.1

相信有耐心进行到这里的人,已经花了1-2个小时了,这是正常的速度。终于可以编译ffmpeg了.

下载源代码,http://ffmpeg.org,解压后首先配置,光这个自动配置过程也要十分钟左右。

  1. ./configure --prefix=/mingw --enable-gpl --enable-nonfree --enable-postproc --enable-avfilter --enable-w32threads --enable-runtime-cpudetect --enable-memalign-hack --enable-bzlib --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --disable-debug --enable-shared --arch=x86_64 --host-os=win64 --extra-cflags=-I/mingw/include --extra-ldflags=-L/mingw/lib

然后 make & make install 等着编译结束吧。
注意:make 时可能会碰到:
ar.exe: libavcodec/: Permission denied 或 library.mak *** 的错误,
参考:http://stackoverflow.com/questions/10847106/get-error-while-building-libav-on-windows-using-mingw-and-msys

    1. 删掉除了.git 所有的文件
    2. git config --global core.autocrlf false
    3. git reset --hard
    4. vim ./configure 查看编码 :set ff? 如果是 unix,即可。dos,不行。
    5. make
    6. make install

安装到libtheora-1.1.1时出错,找不到ogg……

这个应该是找不到ogg.pc,创建个链接就行了,貌似是ln -s……

之后安装到ffmpeg又出错了……不好弄啊

用mingw-w64 编译 x64 位的ffmpeg的更多相关文章

  1. windows 7 + vs2010 sp1编译 x64位版qt4

    由于qt官方没有发布预编译的64位版qt4,要使用64位版qt4,只能自己编译,编译过程如下: 1,下载源码并解压到D:\qt-src\qt-everywhere-opensource-src-4.8 ...

  2. 9.下载ffmpeg、使QT支持同时编译32位和64位

    1.FFMPEG下载 进入http://ffmpeg.org/download.html,如果下载源码,则在右下方: 如果在linux中,直接输入git clone https://git.ffmpe ...

  3. Win7 64位 VS2015及MinGW环境编译FFMPEG-20160326

    因为又要弄MinGW了,所以顺便把FFMPEG编译了,文章主要参考这篇,防抽所以复制一遍,顺便加些自己的内容 http://blog.csdn.net/finewind/article/details ...

  4. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?

    原文:resx文件在X64位编译,提示"未能加载文件或程序集"的问题? resx文件在X64位编译,提示"未能加载文件或程序集"的问题? 解答: 错误现象如下 ...

  5. windows 下编译64位ffmpeg

    window下如何编译ffmpeg 前文已有介绍,前面介绍的都是如何编译32位的库,本文主要介绍window 下如何编译64位ffmpeg库. 一.搭建编译环境 1.下载 windows下编译64位F ...

  6. windows 7下mingw+msys编译ffmpeg

      windows 7下mingw+msys编译ffmpeg   1-->下载安装MingW,mingw-get-inst-20120426.exe  http://sourceforge.ne ...

  7. mingw w64的下载地址

    mingw w64的下载地址,官网下载看得太晕.直接记下下载链接. https://sourceforge.net/projects/mingw-w64/ i686纯32位版供32位win系统使用.x ...

  8. VS 2013编译64位版本QT 4.8.6及使用cmake为依赖QT生成VS项目时Could NOT find Qt4

    对于一些已经解决的问题,本博客不再讨论.只将本人遇到的问题做简单的说明. 一.VS 2013编译64位版本QT 4.8.6 QT项目官网中,对于QT4,其只提供了windows X86的版本,并且支持 ...

  9. VS2015下编译64位GDAL总结

    使用VS2015编译最新的64位GDAL(最新gdal2.11),确实有一些问题,看来双方还是太新了,有点不兼容,特总结如下. 以前经常用的通过VisualStudio IDE进行编译的方式现在似乎不 ...

随机推荐

  1. rocketMq---------相关命令

    搭建就不详细说了,cent7.x的系统,openJdk8,maven3.x,gradle4.10.2, git 1.8.3.1 直接下载相关的二进制压缩包,解压即用,方便. 下面看常用的管理命令 ro ...

  2. cocos2d-x step by step(1) First Blood

    下了cocos2d-x 源码,开搞! 首先,笔者本身 1)      5年没有摸过c++了 2)     没用过cocos2d-x 3)      有强烈的求知欲望(这条每个简历个人介绍不都这么写么, ...

  3. android中setClickable,setEnabled,setFocusable的含义及区别

    setClickable  设置为true时,表明控件可以点击,如果为false,就不能点击:“点击”适用于鼠标.键盘按键.遥控器等: 注意,setOnClickListener方法会默认把控件的se ...

  4. NFC模组,开发NFC功能 仅仅要几条指令的事情

    特点:实现NFC透明传输.内置NFC协议栈,支持UART串口直接读写,用于门禁能够同一时候兼容手机和卡片开门,还能实现动态密钥,读到的NFC数据自己主动串口输出,会串口就能开发NFC,不须要研究LLC ...

  5. 零基础学python-3.7 还有一个程序 python读写文本

    今天我们引入另外一个程序,文件的读写 我们先把简单的程序代码贴上.然后通过我们多次的改进.希望最后可以变成一个简单的文本编辑器 以下是我们最简单的代码: 'crudfile--读写文件' def re ...

  6. 2014年8月25日,收藏家和杀手——面向对象的C++和C(一)

    近期事情特别多,睡眠也都非常晚,有点精神和身体混乱的感觉,所以想写写技术分析文章.让两者的我都调整一下.这篇技术分析文章是一直想写的,当前仅仅是开篇,有感觉的时候就写写,属于拼凑而成,兴许的篇章没有时 ...

  7. caffeModels--models-caffes-大全

    caffe的伯克利主页:http://caffe.berkeleyvision.org/caffe的github主页:https://github.com/BVLC/caffe caffe的model ...

  8. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)

    此篇是利用matlab对caffemodel的卷积核进行可视化.只介绍了卷积核的可视化,不涉及特征图的可视化. 是参考此博客: http://blog.csdn.net/zb1165048017/ar ...

  9. 程序基石系列之C++多态的前提条件

    准备知识 C++中多态(polymorphism)有下面三个前提条件: 必须存在一个继承体系结构. 继承体系结构中的一些类必须具有同名的virtual成员函数(virtualkeyword) 至少有一 ...

  10. iOS开发 如何检查内存泄漏

    本文转载至 http://mobile.51cto.com/iphone-423391.htm 在开发的时候内存泄漏是不可避免的,但是也是我们需要尽量减少的,因为内存泄漏可能会很大程度的影响程序的稳定 ...