用mingw32编译ffmpeg2.7

1.  下载x265最新源码;

下载ffmpeg源码(我用的是2.7);

下载cmake最新版本并安装;

下载SDL(我用的SDL-1.2.15);

下载mingw-get-setup.exe,在“Select Components”步骤中选择:

√  C Compiler (默认且一定选择)

√  C++ Compiler

√  MSYS Basic System(选择此项将会安装msys,msys则不需要另外安装)

√  MinGW Developer ToolKit

  并apply change安装。

2. 配置 msys.bat 批处理文件

为了方便VS2005调用ffmpeg的动态库,可以通过配置让ffmpeg编译时产生windows下调用dll对应的lib,当     然,如果你没有这个需要,那么就可以省略以下处理,直接进入步骤3。 进入:C:\MinGW\msys\1.0\,使      用UltraEdit打开msys.bat文件,在文件的最最前面加入如下一行:

call "D:\开发软件安装文件夹\VS2005\VC\bin\vcvars32.bat"

3. 使用Notepad++修改C:\MinGW\msys\1.0\etc目下的fstab文件,修改其内容为:C:/MinGW,即为MinGW的安装路径。(如果是这样已配好,就不需要改)

4. 添加环境变量

在系统环境变量PATH前面添加 C:\MinGW\msys\1.0\bin和C:\MinGW\bin

5. 配置 yasm

为了减少配置环境变量的麻烦,本处直接把yasm-1.1.0-win64.exe 文件名修改成:yasm.exe,并放到目录:C:\MinGW\msys\1.0\bin下,把

复制到C:\MinGW\msys\1.0\bin下,防止报错。

6.安装cmake,并且配置环境变量的path指向安装路径。运行msys。

7.进入到x265/build/msys目录,执行 make-Makefiles.sh

8.弹出界面,然后依次点 “configure” “generate”按钮,如果步骤7、8提示ES_AW AYMODE_REQUIRED相关的错误,则进入到x265.cpp中加入定义“#define ES_AWAYMODE_REQUIRED 0x00000040”

9.在C:\Program Files (x86)\x265 生成 bin、include、lib,将include、lib复制到C:\MinGW\msys\1.0下,主要是为了方便编译ffmpeg链接的目录,任何额外库编译完成都要复制到该目录下,方便统一调用。

10. 编译SDL(可选项)

SDL-1.2.15.tar.tar 解压, 进入到解压目录,

再执行以下命令:

./configure

make

make install

编译结果在:C:\MinGW\msys\1.0\local 目录下

使用UltraEdit打开C:\MinGW\msys\1.0\local\bin下的 sdl-config文件

把 prefix=/usr/local 该成: prefix=C:/MinGW

其中:C:/MinGW 为 mingw的安装路径,请根据你的安装进行修改。为了编译时msys能识别sdl并开启 SDL support yes 进行编译,请把C:\MinGW\msys\1.0\local编译结果bin、include和lib中有关sdl的拷贝一份到C:/MinGW对应目录中。

11.开始编译ffmpeg,进入下载的ffmpeg目录中,配置:(64位电脑需要时加上--cpu=i686)

./configure --enable-shared --disable-static --enable-ffplay --enable-memalign-hack --enable-gpl --enable-libx265 --cpu=i686 --extra-cflags=-IC:/MinGW/msys/1.0/include --extra-ldflags=-LC:/MinGW/msys/1.0/lib --prefix=C:/MinGW/msys/1.0/complied_result

然后make、make install之后在C:/MinGW/msys/1.0/complied_result下则可以看到编译结果。

运行ffmpeg会提示无x265.exe,则把x265.exe复制到当前bin目录下。

注:在开始编译之前,可以把原来编译的目标文件清除掉:make distclean

ffmpeg命令行执行录制的时候,提示错误“”The encoder ‘aac‘ is experimental but experimental codecs are not enabled, add ‘-strict -2‘ if you want to use it”,网上看直接在命令中add ‘-strict -2‘ 就可以了,但是我这里加了没有效果。

解决方法:

在configurate时--enable-libfaac,这时候可能会提示你nonfree,那就再开启nonfree好了, --enable-nonfree,重新编译,问题解决。

a、需要注释掉faad2-2.7\frontend\main.c中第34行的#define off_t __int64语句。

b、faac-1.28需要打补丁,调用下面命令将补丁faac-1.28.diff(本文开头网址提供资源中包含此文件)打上

patch -p1 < faac-1.28.diff

c、在编译faad和faac前需要在相应目录下调用./bootstrap命令。

时间: 2024-10-11 23:08:00

用mingw32编译ffmpeg2.7的相关文章

Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)

下午写程序中遇到几个小细节,需要在这里记录一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this);     QFileInfo fileinfo(appUrl);     QString appPath = QApplication::applicationDirPath()+SAVEDIR+"/"+fileinfo.fileName();     bool res = proce

windows编译ffmpeg2.2.4并外挂h265

0.前言 据说新出来了h265的视频,在迅雷看看上面看到的,网上查看了一下简介,貌似h265的视频比h264的视频压缩率要高,而且能做4K的视频. 同时看到网上有人试过ffmpeg在编译的时候加上了h265,这样ffmpeg看起来倒是能外挂h265的编解码,所以这篇blog文,主要是用ffmpeg来尝试一下h265. 这里引用几张x265的介绍图片(当然我自己的显示器也是4k的): 1.首先下载ffmpeg源代码 目前最新版是2.2.4 下载传送门:http://www.ffmpeg.org/r

Windows(x64)编译FFMPEG-2.0.1

一.引言 公司需要做网络视频传输的相关项目,初步选定用这么几个东西FFMPEG,ORTP,Live555这么几个东东.研究了也有一个月了,把一些心得写出来,这篇文章主要介绍FFMPEG在windows上的编译. 网上针对FFmpeg在windows上的编译帖子很多,根据编译在过程中还是出现了很多问题,可能是由于版本或者其他的一些问题吧.这里记录了我的编译过程,供大家查考. 感谢下面的文章,主要根据这几篇文章来提取的内容: http://blog.chinaunix.net/uid-2071833

protocol_buff在windows下使用mingw32编译方法

最近接手的一个项目在消息上使用了protocol_buff(以下简称protobuf),是一个挺方便的消息结构体,之前没有接触过,便记录下在windows学习过程 protobuf的简介(转自百度百科) protobuf(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.google 提供了多种语言的实现:java.c#.c++.go 和 python,每一种实现都包含了相应语言的编译器以及库文件.由于它是一种二进制的格式,比使用 xml 进行数据交换快许多.可以把它

ubuntu11.04 编译ffmpeg2.7 并生成 ffplay进行流媒体測试

源代码安装方式: 1. 先下载ffmpeg 安装包 到官网上 http://ffmpeg.org/download.html#releases 下载.选择Download gzip tarball. 当然也能够用git的方式下载. 先不安装. 2. 安装SDL库 SDL 是一套多媒体开放库,是生成ffplay必要的库. sudo apt-get install libsdl1.2-dev 这样就能够在 /usr/include/下看到新生成的SDK库. 之后安装一些依赖库: sudo apt-g

[ffmpeg 扩展第三方库编译系列] 关于libopenjpeg mingw32编译问题

在mingw32假设想编译libopenjpeg 会比較麻烦 会出现undefined reference to `[email protected]' 等错误 因此编译时候须要make CFLAGS="-DWIN32 -DOPJ_STATIC $CFLAGS" 就可以

手把手教你用NDK9编译ffmpeg2.4.2

编译环境: 32位 ubuntu12.10 android-ndk-r9c-linux-x86.tar.bz2 ffmpeg-2.4.2.tar.bz2 网上的教程都是以低版本ffmpeg编译居多,本人特别喜欢折腾新版本,所以就有了以下这篇文章: 一.准备一下两个文件: 1.config.sh ./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --disable

ubuntu11.04 编译ffmpeg2.7 并生成 ffplay进行流媒体测试

源码安装方式: 1. 先下载ffmpeg 安装包 到官网上 http://ffmpeg.org/download.html#releases 下载.选择Download gzip tarball. 当然也可以用git的方式下载. 先不安装. 2. 安装SDL库 SDL 是一套多媒体开放库,是生成ffplay必要的库. sudo apt-get install libsdl1.2-dev 这样就可以在 /usr/include/下看到新生成的SDK库. 之后安装一些依赖库: sudo apt-ge

[ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题

在编译libvpx的时候遇到挺多的问题, 1.[STRIP] libvpx.a < libvpx_g.a strip: Bad file number 这个错误也是比较难搞的,一开始以为只是strip没有找到造成的,但是后来尝试修改strip路径也无法解决. 这个错误需要修改Makefile代码, %.a: %_g.a $(if $(quiet),@echo " [STRIP] [email protected] < $<") # $(qexec)$(STRIP) -