用mingw-w64 编译 x64 位的ffmpeg

本文来自: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
时间: 2025-01-07 08:45:42

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

hadoop入门-在windows上编译x64位hadoop

环境 Windows 7 x64位,visual studio 2010 professional hadoop 源码版本2.2.0 步骤(来源于书<Pro Apache Hadoop, Second Edition>略作修改. Ensure that JDK 1.6 is or higher is installed. We assume that it is installed in the c:/MyApps/jdkl6/ folder, which should have a bin

windows 7 + vs2010 sp1编译 x64位版qt4

由于qt官方没有发布预编译的64位版qt4,要使用64位版qt4,只能自己编译,编译过程如下: 1,下载源码并解压到D:\qt-src\qt-everywhere-opensource-src-4.8.6,路径不能有空格 2,打开visual studio x64 win64命令控制台,进入相应目录. d: cd qt-src\qt-everywhere-opensource-src-4.8.6 3,设置环境变量 set QTDIR=D:\qt-src\qt-everywhere-opensou

windows 7下mingw+msys编译ffmpeg

windows 7下mingw+msys编译ffmpeg 1-->下载安装MingW,mingw-get-inst-20120426.exe  http://sourceforge.net/projects/mingw/ 安装路径 默认C:\MinGW .勾选了 <1> C Compiler  <2> C++ Compiler <3>MSYS Basic System <4>MinGW Developer ToolKit 其中 <3>就安装

[MinGW]_[初级]_[64位的windres如何编译32位的链接文件]

场景: 1.   MinGW(TDM)出了64位的gcc,4.8.1,64位对编译64位的程序非常友好,但是对编译32位程序就需要做额外的工作了. 2.  比如用windres编译manifest,64位环境下默认是不行的,带configure或makefile的即使加了-m32都不会自动对windres设置为编译32位的. 这里就需要在configure或make增加一些参数了. ./configure RCFLAGS="--output-format=coff --target=pe-i38

Window下编译 64位ffmpeg 引入libx264 libmp3lame库

好记性不如烂笔头,每次编译总要有些时间折腾,记录下编译过程,方便后来者. 本文 介绍windows下编译64位Ffmpeg库 (版本V4.02)如何引入libx264及libmp3lame(编码mp3)库. 编译环境选择MinGW64.MinGW64如何安装可参考前面的文章https://www.cnblogs.com/wanggang123/p/9896564.html 一.. 编译x264库,如需要ffmpeg支持h264编码编译时需要将它添加进来.编译x264库相对容易,一次搞定. 首先下

mingw w64的下载地址

mingw w64的下载地址,官网下载看得太晕.直接记下下载链接. https://sourceforge.net/projects/mingw-w64/ i686纯32位版供32位win系统使用.x86_64是64位系统用的版本,现在我们一般用的是64位系统,所以我们可以在四个x86_64中选一个下载.seh结尾是纯64位编译.sjlj结尾是32 64两种编译,需加-m32或-m64参数.posix通常用于跨平台,比win32兼容性好一些. 截图记之 原文地址:https://www.cnbl

ffmepg mingw + vs2012 编译

网上有很多mingw 编译ffmpeg的介绍,但是多很难顺利完成,整理了网上的一些资料把编译过程整理了一下,便于大家使用 1.搭建 MinGW 的编译环境,这里不做过多介绍,网上一大堆 2.安装yasm 地址:http://yasm.tortall.net/Download.html,如果不需要x264支持可以不安装 改名为yasm.exe放到C:\WINDOWS\system32 或者 C:\MinGW\msys\1.0\bin文件夹下. 3.安装pkg-config 下载pkg-config

VS2012编译64位程序

安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器. 1. 选择“Build” – “Configuration Manager”菜单,打开配置管理器.点击新建解决方案平台. 2. 选择“x64”平台,点击确定按钮. 3. 这时候配置管理器中的平台已经改成刚才选择的x64了,这时候编译出来的就是64位程序了.可以在工具栏的平台下拉框中快速切换目标平台. 注意:一个工程调用的另一个工程的DLL时,位数必须一致,即本工程要编译为64位,DLL也必须编译为64位.如果本工程要

VS2013编译64位boost

为了编译CGAL库,必须要先编译boost,在编译64位库时遇到了一些问题,主要解决办法是: 1. 选择VS2013安装目录下的"x64兼容命令提示"命令行对话框: 2. 切换到boost代码目录,例如 CD D:\boost_1_56_0\: 3. 输入:bootstrap.bat 命令,源代码文件夹中会新增了2个文件b2.exe和 bjam.exe: 4. 输入命令: bjam stage --prefix="D:\Boost\bin" --with-syste