Windows下使用MinGW编译ffmpeg与x265 - Fla

Windows下使用MinGW编译ffmpeg与x265

Fla posted @ 2014年4月22日 14:11 in Linux/Ubuntu with tags windows ffmpeg x265 MinGW , 8853 阅读

测试系统:Windows XP SP3 x86 & Windows 8.1 x64

2014年4月21日  luofl1992

1、准备工作

MinGW下载地址:http://sourceforge.net/projects/mingw/files/

点选:Installer>>mingw-get-setup.exe 进行下载,完成后开始安装 MinGW,前面的安装设置保持默认,进入到这里后,先在Basic Setup里面选择这样几项:

-base  -g++  -developer-toolkit

如下图:

 

接着在All packages选MSYS里面的 system-builder:

 

 

选择完毕后,点Installations菜单,选择apply changes,然后确认开始下载这些库(约126个包需要下载)。

 

下载完成后,界面上会提示完毕,点击close按钮即可。然后下载yasm,是一个exe文件放到MinGW的安装目录的bin文件夹,重命名为yasm.exe,或者msys/1.0/bin目录下。下面开始的编译相应库和ffmpeg的操作需要使用MSYS,要修改C:\MinGW\msys\1.0\etc目下的fstab文件,如果不存在fstab,复制一份fstab.sample到当前目录,然后改名为:fstab,再修改其内容为

C:/MinGW/mingw  /minGW

其中前面是MinGW的安装目录,也即为MinGW的安装路径,否则后面编译库的时候会提示缺少头文件。下面的操作,需要在命令行下完成,不同的是通过msys进入,即运行C:\MinGW\msys\1.0目录下的msys.bat批处理文件,进入一个模拟linux系统的命令行。如下图,注意切换目录时,相对目录与windows下一致,切换到其他盘时不同,如下图:

 

2、编译ffmpeg

ffmpeg可以到 http://www.ffmpeg.org/releases/ 下载,我下载的是最新版本2.2版。(注意下载的文件后缀名应该是 .tar.gz 如果下载下来没有这两个点的后缀,请自己加上再解压)或者:https://github.com/FFmpeg/FFmpeg 点界面右边的Download Zip下载。

为了支持额外的扩展库编解码,需要额外下载。

首先编译x264库,下载地址:http://www.videolan.org/developers/x264.html

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

下载源码后解压,编译安装:

./configure --prefix=/olibs --enable-shared --enable-static (注意中间是两个英文的减号,prefix项目指定库的安装目录,配置要2~3分钟的时间)

make (如果提示出错了最好先执行make clean命令,大概10分钟)

make install(无错误的话进行下一步,有错误的话检查一下上面的操作是否有所遗漏)

 

然后是编译x265库:(最新的版本已经有支持配置选项)

    下载tortoiseHG,到目录https://bitbucket.org/multicoreware/x265/src下载最新版本,编译x265需要安装cmake用来生成工程文件,注意下载最新版本,最新的x265需要cmake2.8.8以上版本。安装cmake完毕(注意设置添加到PATH)后重新进入到x265/build/msys目录,执行 make-Makefiles.sh。

这里会报错,Win8.1 x64提示是缺少三个文件( xp系统中没有提示可以直接出现下面界面)

x86_64-w64-mingw32-g++   x86_64-w64-mingw32-gcc  x86_64-w64-mingw32-windres

直接将 MinGW目录下的Bin目录下 g++、gcc、windres三个文件拷贝,然后重命名成对应的即可,然后出现了这样的界面(1处设置为C:\MinGW\msys\1.0\olibs,2处设置为bin,3处设置为lib,2和3是相对于1的路径):

 

先点下面的configure,然后点generate即可,然后关闭,回到命令行。同上面的执行

make 然后是 make install。最后编译成功应该可以找到对应的lib文件在olibs目录下。

 

最后编译ffmpeg

假设安装路径为/FFmpeg/Release(相对于MSYS目录的位置),假设第三方库所在路径为/olibs,配置编译,注意下面蓝色的可能不好用(在Win8.1下尝试时总是提示找不到libx264库,最后将MinGW安装目录下的msys\1.0\olibs里面的结果bin、include和lib中的库和头文件拷贝一份到MinGW安装目录下的对应目录中(比如lib目录对应lib目录)配置如下,灰色的可以选用:

./configure --prefix=/FFmpeg/Release --disable-debug --disable-static --enable-shared --extra-cflags=-I/olibs/include --extra-ldflags=-L/olibs/lib --enable-gpl --enable-libx264 --enable-libx265 \

--enable-version3 --enable-avfilter --enable-avfilter-lavf --enable-memalign-hack --enable-avisynth \

--enable-libgsm \

--enable-libmp3lame

--enable-libopencore-amrnb \

--enable-libopencore-amrwb \

--enable-libtheora \

--enable-libvorbis \

--enable-libxvid

make  (配置不提示出错的话,就没啥问题了,安心等待喝杯咖啡,20~30分钟)

make install  (编译完毕,最后安装)

 

最后可以在目录C:\MinGW\msys\1.0/FFmpeg/Release 找到编译的结果。

 

最后推荐一个ffmpeg常用的库:sdl,用来做播放器很简单。Ffmpeg解码其他格式需要添加相应的库,大家可以自行百度,或者在编译ffmpeg之前 ./configure –help 指令查看一下支持的库,然后上网查询一下对应的库即可。

 

本文到此结束。

 

最后祝大家(工作顺利||学业有成)

 

参考链接:

1、MinGW的安装与配置

http://www.cnblogs.com/azraelly/archive/2012/12/31/2840156.html

2、对ffmpeg支持库的编译说明比较详细

http://www.codecoolie.com/ffmpeg/compile-ffmpeg-under-windows/

3、提到了修改fstab文件

http://blog.chinaunix.net/uid-20718335-id-2980793.html

PS:欢迎访问本人的CSDN博客:http://blog.csdn.net/luofl1992

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee