`
xpp02
  • 浏览: 1010283 次
社区版块
存档分类
最新评论

Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述

 
阅读更多

一.环境配置
1.下载并安装 MinGW-5.1.4.exe (http://jaist.dl.sourceforge.net/sourcef … -5.1.4.exe),安装时选中 g++, mingw make。建议安装到c:/mingw.
2.下载并安装 MSYS-1.0.11-rc-1.exe (http://jaist.dl.sourceforge.net/sourcef … 1-rc-1.exe),安装结束时会以命令行方式提示输入MinGW的安装路径,输入c:/MinGW, msys建议安装到c:/msys, 默认是c:/msys-1.0, 可以手动改为c:/msys。
3.下载gcc-4.3.2-tdm-1-core.zip (http://ftp3.ie.freebsd.org/pub/sourcefo … 1-core.zip),解压后覆盖到 c:/mingw 安装目录. minGW-5.1.4 默认安装的版本是3.4.5.

二.下载 ffmpeg 0.5 (http://ffmpeg.mplayerhq.hu/releases/ffmpeg-0.5.tar.bz2)
1.解压后拷贝到c:/msys/home/目录下。 (C:/msys/home/ffmpeg-0.5)
2.用文本编辑器打开源码目录下的 configure (C:/msys/home/ffmpeg-0.5/configure) 文件,搜索两处 pr 全部替换为 print。
3.运行c:/msys.bat,进入c:/msys/home/ffmpeg-0.5源码目录,创建release目录 (madir release) 和 debug 目录 (mkdir debug) 目录,视需求编译 release 或 debug 版本:
4. 进入c:/msys/home/ffmpeg-0.5/release 目录下执行: ../configure --disable-static --enable-shared --enable-small --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib
5.或进入 c:/msys/home/ffmpeg-0.5/debug 目录下执行: ../configure --disable-static --enable-shared --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-debug=3 --disable-optimizations --disable-stripping
6.make
7.make install

注:参数解释
a.--extra-ldflags=-L<prefix>/lib --extra-cflags=-I<prefix>/include

如果你把库安装在了非gcc的缺省寻找路径,你必须向FFmpeg的configure脚本传递这些路径信息。
b.--enable-small

optimize for size
c.--enable-nonfree
Yes, FFmpeg recently changed the --enable-libfaac to require --enable-nonfree due to some inconsisent licensing
declarations in the faac source. You can also workaround this by not enabling AAC in the wizard. They have a
native AAC encoder in progress, but it is not ready and enabled yet.

三.支持x264 (--enable-libx264)
1. 下载 x264 原始码(http://www.imagemagick.org/download/delegates/ffmpeg /x264-1024283.tar.bz2) (x264-snapshot-20100115-2245.tar.bz2这个源码编译不过,不知道为什么,有时间仔细研究研究。)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/x264-1024283)
3.进入c:/msys/home/x264-1024283 目录下执行: ./configure --prefix=/usr/local --enable-shared --disable-asm
4.make
5.make install

四.支持xvid (--enable-libxvid)
1.下载 xvid 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/xvidcore-1.2.2.tar.bz2)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/xvidcore)
3.进入c:/msys/home/xvidcore/build/generic 目录下执行: ./configure --prefix=/usr/local --enable-shared
4.make
5.make install

五.支持MP3 (--enable-libmp3lame)
1.下载 MP3 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/lame-398-2.tar.gz)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/lame-398-2)
3.进入c:/msys/home/lame-398-2 目录下执行: ./configure --prefix=/usr/local --enable-shared
4.make
5.make install

六.支持FAAC (--enable-libfaac)
1.下载 FAAC 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/faac-1.28.tar.bz2)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/faac-1.28)
3.进入c:/msys/home/faac-1.28 目录下执行./bootstrap
4../configure --prefix=/usr/local --enable-shared --without-mp4v2

(FAAC 无需编入 mp4 容器支持,封入 mp4 容器的工作由 ffmpeg 负责)
5.make
6.make install

七.支持FAAD (--enable-libfaad)
1.下载 FAAD 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/faad2-2.7.tar.bz2)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/faad2-2.7)
3.进入c:/msys/home/faad2-2.7 目录下执行 autoreconf -vif
注:编译FAAD需要使用autoreconf, 下载msysDTK-1.0.1.exe 安装到c:/msys.
4../configure --prefix=/usr/local --enable-shared --without-mp4v2
5.make
6.make install

八.支持gsm (--enable-libgsm)
1.下载 gsm 原始码(http://www.imagemagick.org/download/delegates/ffmpeg/gsm-1.0.13.tar.gz)
2.解压后拷贝到c:/msys/home/目录下 (c:/msys/home/gsm-1.0-pl13)
3.进入c:/msys/home/gsm-1.0-pl13 目录下执行: ./configure --prefix=/usr/local --enable-shared
4.make
注:make编译出错(make: *** [bin/toast] Error 1), 忽视这个错误,不影响。
5.cp c:/msys/home/gsm-1.0-pl13lib/libgsm.a c:/msys/local/lib
6.cp c:/msys/home/gsm-1.0-pl13lib/inc/gsm.h c:/msys/local/include

九.libamr-nb (--enable-libamr-nb)
1.下载 libamr-nb 原始码(http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2)
2.解压后拷贝到c:/msys/home/目录下 (C:/msys/home/amrnb-7.0.0.2)
3.下载26104-700.zip (http://www.3gpp.org/ftp/Specs/archive/2 … 04-700.zip), 将这个zip包放到c:/msys/home/amrnb-7.0.0.2 目录下面
4.下载unzip-5.51-1-bin.zip (http://downloads.sourceforge.net/gnuwin … -1-bin.zip),解压后将unzip.exe到/mingw/bin下。
5.进入c:/msys/home/amrnb-7.0.0.2 目录下执行: ./configure --prefix=/usr/local --enable-shared
6.make
7.make install

十.libamr-wb (--enable-libamr-wb)
1.下载 libamr-wb 原始码(http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2)
2.解压后拷贝到c:/msys/home/目录下 (C:/msys/home/amrwb-7.0.0.3)
3.下载26204-700.zip (http://www.3gpp.org/ftp/Specs/archive/2 … 04-700.zip), 将这个zip包放到c:/msys/home/amrwb-7.0.0.3 目录下面
4.下载unzip-5.51-1-bin.zip (http://downloads.sourceforge.net/gnuwin … 工作,这里就不用做了)
5.进入c:/msys/home/amrwb-7.0.0.3 目录下执行: ./configure --prefix=/usr/local --enable-shared
6.make
7.make install

十一.最后编译ffmpeg 0.5
1.进入c:/msys/home/ffmpeg-0.5/release
2. ../configure --disable-static --enable-shared --enable-small --enable-memalign-hack --enable-gpl --extra-cflags=-I/local/include --extra-ldflags=-L/local/lib --enable-libgsm --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-nonfree --enable-libxvid --enable-libx264 --enable-libamr-nb --enable-libamr-wb
3.make
4.make install

十二. 编译出lib 文件

以上方式默认不能编译出 .lib文件。如果希望在vc++调用ffmpeg 库,要用到相应的 .lib 文件。可以用以下方式编译。

1.在msys.bat开头添加一句话:call "C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/VCVARS32.BAT"

根据自己vc7实际路径修改以上路径。在重复步骤十一。

先写到这里,在以后的应用实践中不断补充。

  • Registered: 2010-05-26
  • Posts: 984

Re: Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述 (转)

http://hi.baidu.com/zorru/blog/item/ea3 … ae2cf.html
如何编译FFMPEG(WIN,MINGW+MSYS)



如何编译FFMPEG

一:配置
1:install MinGW 5.0.2
Download: http://prdownloads.sf.net/mingw/MinGW-5 … e?download

2:install MSYS 1.0.1
Download: http://prdownloads.sf.net/mingw/MSYS-1. … e?download

3:install MSYSDTK 1.0.1
Download: http://prdownloads.sf.net/mingw/msysDTK … e?download

4:install dos2unix.exe
Download: http://www.bastet.com/uddu.zip
extract, and place a copy of dos2unix.exe in C:/mingw/bin

5:install nasm.exe
Download: http://prdownloads.sourceforge.net/nasm … p?download
extract, rename nasmw.exe to nasm.exe and place a copy in C:/mingw/bin

二:装载库
1:libogg 1.1.3
download: http://downloads.xiph.org/releases/ogg/ … 1.3.tar.gz
./configure --disable-shared
make
make install

2:vorbis 1.1.2
download: http://downloads.xiph.org/releases/vorb … 1.2.tar.gz
./configure --disable-oggtest --disable-shared
--with-ogg-includes=/usr/local/include
--with-ogg-libraries=/usr/local/lib
make
make install

3:libfaac - faac-snapshot-20060329
download: cvs -z3 -d:pserver:anonymous at cvs.audiocoding.com:/cvsroot/faac co -P faac
dos2unix configure.in
./bootstrap
./configure --without-mp4v2
make
make install

4:libfaad - faad2-15092004.tar.gz
download: http://www.audiocoding.com/modules/mydo … amp;lid=19
modify line 308 of libfaad/common.h from:
#elif (defined(__i386__) && defined(__GNUC__))
to
#elif (defined(__i386__) && defined(__GNUC__) && !defined(__MINGW32__))
./bootstrap
./configure --with-drm
cd libfaad
make
make install

5:a52 - a52dec-0.7.5-cvs
download: cvs -z3 -d:pserver:anonymous at cvs.sourceforge.net:/cvsroot/liba52 co -P liba52
./configure
make
make install

6:mp3lame - lame-3.97b2
download: cvs -z3 -d:pserver:anonymous at cvs.sourceforge.net:/cvsroot/lame co -P lame
./configure --disable-shared
make
make install

7:libdts - libdts-0.0.2
./configure
make
make install

8:xvid - xvidcore-1.1.0
download: http://downloads.xvid.org/downloads/xvi … 1.0.tar.gz
cd build/generic
./configure --prefix=c:/mingw --disable-shared
make
make install
rm /c/mingw/lib/xvidcore.dll
mv /c/mingw/lib/xvidcore.a /c/mingw/lib/libxvidcore.a

9:libx264 - x264-snapshot-20060416-2245
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
./configure
make
make install

10:ffmpeg - ffmpeg-cvs-20060417
Download lastest version using cvs:
cvs -z3 -d:pserver:anonymous at mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg
./configure --enable-faac --enable-faad --enable-a52 --enable-mp3lame
--enable-dts --enable-xvid --enable-x264 --enable-vorbis
--enable-libogg --enable-gpl --enable-pp --enable-mingw32
--enable-memalign-hack --disable-debug
--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
make
make install

附言:

(关于编译器的问题)

1.可能没有PR.EXE,(configure时候会用到这个工具)

A:下载unixutils,把其中的pr.exe拷到bin下面.下载地址 http://unxutils.sourceforge.net/

B:下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2,把其中的pr.exe拷到bin下面

2.可能要安装bash-3.1.

3.LIB库的产生:

msys.bat的最前面,把路径替换成机器上vcvars32.bat实际存在的路径,
机器上:"D:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin",
添加:call "D:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/vcvars32.bat"

FFmpegwindows下的编译,搭建mingw+msys环境[转载,有改动]

ffmpeg,windows,编译,mingw,msys

本帖最后由 终有时 于2010-9-14 07:40 PM 编辑

前段时间编译了ffmpeg,由于需要生成在windows下的可执行文件,所以采用的是mingw+msys的环境。这个环境可以在windows下模拟一个linux终端,对linux下的makefile项目进行编译,从而生成windows下的可执行文件和动静态链接库。
对环境的搭建费了好大功夫,百度出来的文章基本上都是几年前的,大家转来转去,就那一个版本,还很简略,现在已经跟不上时代的步伐。好在终于找到一篇比较新的文章,内容非常详细,根据它的步骤一步一步来就可以正常编译ffmpeg,现在将这篇文章转载让大家看看。
我根据此文章搭建好的环境压缩放在了CSDN上,下载了之后解压即可使用,免去了大家下载的麻烦,不过我没有做对各种库的添加支持,就是说我的环境已经做完了前面的11步,需要添加支持的直接从后面开始就可以了!
注:我把mingw放在了msys/1.0/目录下。
mingw+msys
环境下载地址:
http://download.csdn.net/source/2634858


以下内容转自《MinGW下简单编译FFmpeg》,转载时有改动。
原文地址:http://jeremiah.blog.51cto.com/539865/126804
由于原文中的资源下载链接现在大部分都已失效,有些资源还比较难找,本人就自己搜集下载并上传到了CSDN上,可以直接下载。
编译环境要求:
Msys: 1.0.10
MinGW:5.1.4
make: 3.81
gcc: 4.3.2
w32api: 3.13
SDL: 1.2.1
MinGW-Runtime: 3.15




一步步的来吧:
1. Minimal SYStem (MSYS)
安装
下载MSYS-1.0.10.exe并安装:
下载地址:http://download.csdn.net/source/2635337
安装到c:/msys/1.0,临近最后会出现个dos窗口,最后一句为:
Do you wish to continue with the post install? [yn ]
输入n,结束安装。


2. MSYS DTK (Developer Tool Kit)
安装
下载msysDTK-1.0.1.exe并安装:
下载地址:http://download.csdn.net/source/2635339
安装到C:/msys/1.0,其他默认。


3.
升级下MSYS
下载msysCORE-1.0.11-bin.tar.gz
下载地址:http://download.csdn.net/source/2694777
解压这个文件,将bin/mount.exe, msys-1.0.dll, ps.exe三个文件copyc:/msys/1.0/bin下面覆盖下。


4.
升级下MSYSBASH
下载bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
下载地址:http://download.csdn.net/source/2635711
解压这个文件,将bin/bash.exe, sh.exe两个文件copyc:/msys/1.0/bin


5. MinGW
安装
下载mingw-5.1.4.exe并安装:
下载地址:http://download.csdn.net/source/2635735
安装,选择download and install,下两步之后选择Candidate,不要选Current。选择MinGW base tools (autoselected), g++ compiler, MinGW make; 安装路径为c:/msys/1.0/mingw。等待下载完了安装吧。O(∩_∩)O……


5.2.
还原binutils-2.16.91
很多朋友需要用ffmpegdll来做开发。编译的时候是用./configure --enable-memalign-hack --disable-static --enable-shared。但是最终编译出来make install或者将相关的dll拷贝得到ffmepg同级目录后,执行ffmpeg或者ffplay报错:应用程序正常初始化失败
经过google了许多资料,发现是binutils的版本问题。chinavideo论坛上面有的朋友说是mingw的版本问题,使用MinGW-3.1.0-1.exe会解决。Jeremiah经过试验,发现不大行,从报错的结果来看,MinGW-3.1.0-1.exe没有自带binutils。还是要自己安装。而MinGW-5.1.4.execandidate选项会默认给我们安装binutils-2.18.50-20080109-2.tar.gz。而这个binutils会最终导致应用程序正常初始化失败的错误。
Jeremiah
和网友deepocean测试了nbinutils的版本,最后发现binutils-2.16.91-20050827-1.tar.gz是最适合的。其他的,ms不行!
下载地址:http://download.csdn.net/source/2635739
解压到c:/msys/1.0/mingw,覆盖原来的。


6.
配置fstab
copy C:/msys/etc/fstab.sample
fstab,确保以下对应:
#Win32_Path Mount_Point
c:/msys/1.0/mingw /mingw




原始环境就搭建好了。可以启动桌面上行的MSYS了。


7.
升级make
下载make-3.81.90-msys.rar
下载地址:http://download.csdn.net/source/2635746
解压,复制make.exec:/msys/1.0/bin下,覆盖原来的make
MSYS
中输入make -v显示的版本为3.81


8.
升级gcc
下载gcc-4.3.2-tdm-1-core.zip
下载地址:http://download.csdn.net/source/2635749
解压到c:/msys/1.0/mingw,覆盖原来的。
MSYS
中输入gcc -v显示的版本为4.3.2


9.
升级W32API
下载w32api-3.13-mingw32-dev.tar.gz
下载地址:http://download.csdn.net/source/2635754
解压到c:/msys/1.0/mingw,覆盖原来的。


10.
添加SDL
下载SDL-devel-1.2.11-mingw32.tar.gz
下载地址:http://download.csdn.net/source/2635755
解压该软件包;
lib下的所有文件复制到C:/msys/1.0/mingw/lib
include下的所有文件复制到C:/msys/1.0/mingw/include
bin下的i386-mingw32msvc-sdl-config复制到C:/msys/1.0/mingw/bin,并重命名为sdl-config
bin下的SDL.dll复制到C:/msys/1.0/mingw/bin


10.2
添加pr.exe
下载coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2:
下载地址:http://download.csdn.net/source/2635758
解压,拷贝binpr.exec:/msys/1.0/bin下。


整体上的编译环境就搭建好了。



11.
编译FFmpeg
ffmpeg
下载地址:0.5版本:http://download.csdn.net/source/2635790
0.5.1
版本:http://download.csdn.net/source/2635791
0.5.2
版本:http://download.csdn.net/source/2635795
0.6
版本:http://download.csdn.net/source/2635797
copy
c:/msys/1.0/home/your_name下面(此路径可根据自己喜好)。
解压:tar xjvf ffmpeg-(根据版本).tar.bz2
vi
一个文件ffmpeg-conf.sh,内容为:
SDL_CFLAGS=/mingw/include
SDL_LIBS=/mingw/lib
./configure --enable-ffplay --enable-memalign-hack



执行./ffmpeg-conf.sh
执行make,应该不会有错误的。
执行ffplay filename就可以播放了。


12.
写在编译完之后
我们只是对ffmpeg进行了简单的编译,如果需要其他的功能还是去google吧。
编译完了应该会出三个可执行文件:ffmpeg.exe, ffplay.exe, ffserver.exe, 但是我编译完了只有前两个,没有ffserver.exe。因为MinGW里面少了关于ffserver用的网络的相关的包。
参考http://bbs.chinavideo.org/viewthread.php?tid=95
单独使用ffplay,需要将c:/msys/1.0/mingw/bin/SDL.dllffplay.exe放到相同的目录下。
Ffmpeg
工程组的网站不错http://www.ffmpeg.com.cn,它的论坛[url=http://bbs.chinavideo.org/index.php[/url]]http://bbs.chinavideo.org/index.php[/url]里面应该有不少关于FFmpeg的东西。


13. Msys
的编辑
以前很不喜欢这个系统,因为不能跟cmd或者其他linux的命令行一样复制粘贴,去网上查了一下,发现可以的其实,只不过方式不一样。
复制:选中一段文字,就将这段文字复制到剪贴板。
粘贴:shift+鼠标左键,就将剪贴板的内容粘贴到命令行了。

14. libamr库加入
首先下载http://gd.tuwien.ac.at/gnu/mingw/wget-1.9.1-mingwPORT.tar.bz2,解压wget.exe/mingw/bin下。
下载http://downloads.sourceforge.net/gnuwin32/unzip-5.51-1-bin.zip,解压bin/unzip.exe/mingw/bin下。
下载两个库:
amrnb
http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2
amrwb
http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2
分别解压到~下面。(~/home/yourname)。
下载http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-700.zip,将这个zip包放到~/amrnb-7.0.0.2下面。
下载http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-700.zip,将这个zip包放到~/amrwb-7.0.0.3下面。
~/amrnb-7.0.0.2
~/amrwb-7.0.0.3下面分别执行:
./configure --disable-shared
make
make install



其中,--disable-shared将产生静态库,如需要动态库,则不要加这个选项。
进入ffmpeg-0.5目录,
保存以下脚本为ffmpeg-conf02.sh
SDL_CFLAGS=/mingw/include
SDL_LIBS=/mingw/lib
./configure --enable-ffplay --enable-memalign-hack --enable-libamr-nb --enable-libamr-wb --enable-nonfree --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include


执行以下脚本:
rm -rf config.*
sh ffmpeg-conf02.sh
make




其中rm -rf config.*是为了确保config.h文件能被重写。如果不删除而是覆盖的话,可能会有不能写入覆盖的情况,所以,每次重新从configure开始的编译的话,还是执行下这个rm命令把configure产生的文件都干掉。
这样编译出来的ffplay就可以播放3gp文件了。(附件提供)


15. libmp3lame
库加入
首先到lame-3.97.tar.gz (不要最新的版本3.98.2ms有些问题,说audio专码的buffer不够)
http://sourceforge.net/projects/lame/files/lame/lame-3.97.tar.gz/download
解压到~下。
执行以下脚本:
./configure --disable-shared
make
make install



进入ffmpeg-0.5目录,
保存以下脚本为ffmpeg-conf03.sh
SDL_CFLAGS=/mingw/include
SDL_LIBS=/mingw/lib
./configure --enable-ffplay --enable-static --disable-shared --enable-memalign-h
ack --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-nonfree -
-extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include



执行以下脚本:
rm -rf config.*
sh ffmpeg-conf03.sh
make


make
后就可以使用ffmpegMP3的转码了
ffmpeg -i d:/video/01.avi -vcodec mpeg2video -acodec libmp3lame 01.mpg







16. libfaac
libfaad库加入
下载faacfaad的源码:
http://sourceforge.net/projects/faac/files/faac-src/faac-1.28.tar.bz2/download
http://sourceforge.net/projects/faac/files/faad2-src/faad2-2.7.tar.bz2/download
分别解压到~下。
注释掉faad2-2.7/frontend/main.c的第34行:
Windows系统使用minGW+msys<wbr>编译ffmpeg<wbr>0.5的全过程详述


分别执行:
./bootstrap
./configure --disable-shared --without-mp4v2
make
make install



进入ffmpeg-0.5目录,
保存以下脚本为ffmpeg-conf04.sh
SDL_CFLAGS=/mingw/include
SDL_LIBS=/mingw/lib
./configure --enable-ffplay --enable-static --disable-shared --enable-memalign-h
ack --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-libfaac -
-enable-libfaad --enable-gpl --enable-nonfree --extra-ldflags=-L/usr/local/lib -
-extra-cflags=-I/usr/local/include



执行以下脚本:
rm -rf config.*
sh ffmpeg-conf04.sh
make


make
后就ffmpeg就可以使用faacfaad了。



ffmpeg -i d:/video/02.mp3 -acodec libfaac 01.aac







17.
修改Msys的字体及背景色
用文本编辑器打开C:/Msys/msys.bat,如下:
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=Black
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Yellow




start rxvt -backspacekey -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn "Courier New-20" -tn msys -geometry 80x30 -e /bin/sh --login -i


其中上面的BlackYellow都是颜色。下面的-fn后面跟"字体-大小"80x30为每行80个字符,共显示30行。这都是Jeremiah喜欢的设置。


18. x264
编码支持

下载x264源码需要用git
git clone git://git.videolan.org/x264.git


或者去http://www.videolan.org/developers/x264.html中,选You can browse the source on-line,点选最新的snapshot
Jeremiah
测试用的是http://git.videolan.org/?p=x264.git;a=snapshot;h=5d75a9bd5b942392c4ab64156a266eed64c0793f;sf=tgz


将源码解压到~下,执行



./configure --disable-asm --enable-shared
make
make install




进入ffmpeg-0.5目录,
保存以下脚本为ffmpeg-conf04.sh
#this is enable amr mp3 aac aad x264
SDL_CFLAGS=/mingw/include
SDL_LIBS=/mingw/lib
./configure /
--enable-ffplay /
--enable-static /
--disable-shared /
--enable-memalign-hack /
--enable-libamr-nb /
--enable-libamr-wb /
--enable-libmp3lame /
--enable-libfaac /
--enable-libfaad /
--enable-gpl /
--enable-nonfree /
--enable-libx264 /
--extra-ldflags=-L/usr/local/lib /
--extra-cflags=-I/usr/local/include

执行以下脚本:
rm -rf config.*
sh ffmpeg-conf05.sh
make





make
成功后,使用x264,如下:
$ ffmpeg -i d:/01.avi -f psp -acodec libfaac -ab 94k -vcodec libx264 -cqp 28 -coder 1 -refs 3 -deblockalpha 1 -deblockbeta -1 -me_method umh -subq 9 -me_range 32 -trellis 2 -chromaoffset -2 -nr 0 -bf 2 -b_strategy 1 -bframebias 0 -directpred 3 -g 250 -i_qfactor 1.3 -b_qfactor 1.4 -flags2 +bpyramid+wpred+mixed_refs+8x8dct -er 2 -s 480x320 d:/01.mp4



参考网址:
http://wiki.videolan.org/Win32CompileMSYS
[url=http://www.cnblogs.com/sunlin886/archive/2007/03/18/678863.html[/url]]http://www.cnblogs.com/sunlin886/archive/2007/03/18/678863.html[/url]
http://hi.baidu.com/yeyingxian/blog/item/a03576d966b2892910df9b28.html

本文出自 Jeremiah的流媒体乐园博客,出处http://jeremiah.blog.51cto.com/539865/126804
转载时有改动。

发表于 2010-8-29 11:38 PM| 只看该作者

搭建编译FFmpegMinGW+MSYS 环境,只需敲两三下键盘就能搞定。

http://www.ffmpegwindows.org/batchs

附件:您需要登录才可以下载或查看附件。没有帐号?注册

FFVCL - FFmpeg for Delphi VCL Components / C++Builder / FFOCX - ActiveX OCX Controls / VB6 / VC6 / ...

16. libfaaclibfaad库加入

我在这里进入 faad2-2.7 这个目录执行到make时出错.

Administrator@282EEA0CCBC1410 ~/faad2-2.7
$ make
makeall-recursive
make[1]: Entering directory `/home/Administrator/faad2-2.7'
Making all in libfaad
make[2]: Entering directory `/home/Administrator/faad2-2.7/libfaad'
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -iquote ../include -g -O2 -MT bits.lo -MD -MP -MF ".deps/bits.Tpo" /
-c -o bits.lo `test -f 'bits.c' || echo './'`bits.c; /
then mv ".deps/bits.Tpo" ".deps/bits.Plo"; /
else rm -f ".deps/bits.Tpo"; exit 1; /
fi
gcc -DHAVE_CONFIG_H -I. -I. -I.. -iquote ../include -g -O2 -MT bits.lo -MD -MP -MF .deps/bits.Tpo -c bits.c-DDLL_EXPORT -DPIC -o .libs/bits.o
cc1.exe: error: unrecognized command line option "-iquote"
cc1.exe: ../include: No such file or directory
gcc.exe: ../include: linker input file unused because linking not done
make[2]: *** [bits.lo] Error 1
make[2]: Leaving directory `/home/Administrator/faad2-2.7/libfaad'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Administrator/faad2-2.7'
make: *** [all] Error 2

TOP

解决了!

不过还是有问题

--enable-libfaad /
在编译ffmpeg,这个参数还是加不上去.

楼主提到的 amr-nb参数等加不上
./configure --help
后发现这两个,但是加上后也报错.
--enable-libopencore-amrnb /
--enable-libopencore-amrwb /

TOP

libmp3lame库加入问题,
最近编译最新的ffmpeg,发现要libmp3lame3.98.4,我不清楚如何卸载这些库?删掉就可以?

在windows平台下编译出libavcodec库

前边做了msys的环境搭建,在编译ffmpeg时,还需要做以下的工作。
1. 整合系统,把
call "c:/Program Files/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat"加到d:/msys/msys.bat的最前边。
2. 运行msys.bat后
切换到下载的ffmpeg目录中,因为msys走的是类UNIX路径,所以要按UNIX的方式切换路径等。
如: cd /d/ffmpeg
3.用configure配置Makefile
./configure --enable-shared --disable-static --enable-memalign-hack
这样是生成动态的编解码库,由于1 中加入了vcvars32.bat环境,故用这样的模式才会生成具体的dll及lib等,否则vc下调用接口又会折腾了.
4.make
编译ffmpeg整个项目
5. 在ffmpeg/libavcodec下就会有相应的dll,lib,而ffmpeg//libavformat下也会有相应的dll,lib.

TAG windows ffmpeg libavcodec
发表于: 2009-05-18,修改于: 2009-05-29 21:05,已浏览577次,有评论0条 推荐 投诉


四、最新 完整FFMPEG 编译详解

2010_3_1最新完整 FFMPEG编译详解

[i=s] 本帖最后由 golocy 2010-3-1 05:23 PM编辑 [/i]

2010_3_1
最新 FFMPEG编译详解

在网上看了很多编译详解,都很零散。经过自己的编译,解决一些BUG,在此分享自己的一些经验...话不多说了!直接上贴。

第一步:准备编译平台。
需要 一个MinGW 一个 MSYS 安装包 以及 MSYS_DTK.
当前最新是版本:
MinGW5.1.6.exe [url=http://sourceforge.net/projects/mingw/files/]
下载[/url]
msysDTK-1.0.1.exe [url=http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe]
下载[/url]
Msys1.0.11.exe [url=http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe]
下载[/url]
按照以上顺序安装
建议:(可选)
MinGw5.1.6安装到 F:/MinGw (为了路径简短起见)
Msys1.0.11安装到 F:/MinGw/Msys(为了方便起见)

有些机器不会在/MinGw/Msys/etc中产生正确的fstab文件,因此确保
/MinGw/Msys/etc
中具有一个fstab文件内容为:F:/MinGw /minwg前者为你的MinGw安装目录后面对应MinGw目录)

第二步:准备编译工具
需要一些编译工具,以便能够编译需要的库。

1.
二进制工具(xx.exe文件)
pr.exe
(在coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2包的bin目录中)[url=http://sourceforge.net/projects/mingw/files /MSYS Base System/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils- 5.97-MSYS-1.0.11-snapshot.tar.bz2/download]下载[/url]
ffmpegconfigure执行需要用到)
复制到 MinGW/bin
注意:是MinGW目录中的bin

SDL
工具 [url=http://www.libsdl.org/docs.php]下载[/url] (ffmpeg需要用到)
在包中的四个目录:bin lib include share一起复制到 MinGw 目录下
(bin
中包含 SDL.dll sdl-config)
sdl-config中修改第一行为 prefix=/mingw
[url=http://www.ffmpeg.com.cn/index.php/Ffplay使用事例]参考[/url]

unzip.exe
工具 [url=unzip-5.51-1.exe][url=http://sourceforge.net/projects/gnuwin32 /files/unzip/]下载[/url][/url](安装 libamrnb libamrwb需要用到)
解压unzip-xxx-bin.zip后在bin 中复制 unzip.exe MinGw/Msys/bin
(注意:是 Msys目录中的bin

wget.exe
工具 [url=http://ftp.gnu.org/gnu/wget/]下载[/url](安装 libamrnb libamrwb需要用到)
解压后 bin 中拷贝 wget.exe MinGw/Msys/bin
(注意:是 Msys目录中的bin

git.exe
工具 下载(获取x264库需要用到)安装:

[url=http://msysgit.googlecode.com/files/Git-1.6.5.1-preview20091022.exe]Git-1.6.5.1-preview20091022.exe[/url]

2.
源码安装包(需要编译安装的工具包)
autoconf [url=http://ftp.gnu.org/gnu/autoconf/]
下载[/url]
automake [url=http://ftp.gnu.org/gnu/automake/]
下载[/url]
libtool[url=http://ftp.gnu.org/gnu/libtool/]
下载[/url]
yasm [url=http://www.tortall.net/projects/yasm/releases/yasm-0.8.0.tar.gz]
下载[/url]

下载最新版 然后解压到 Msys目录中的home/Administrator
(
说明:以后需要执行'configure' 'make' 'make install' 命令来安装的xx.tag.gz都解压到Administrator以便控制台中方面路劲的输入

包的安装:
举例安装 autoconf
Msys命令行中:

cd autoconf
回车 (从 ~ 目录 进入 autoconf 目录)
configure
回车 (执行配置文件)
make
回车 (开始编译)
make install
回车 (安装)

安装 automake包:动作同上,只是要进入automake 目录.(cd automake)

第三步:准备一个线程库(不准备编译x264的可以跳过)
pthread
[url=ftp://sources.redhat.com/pub/pthreads-win32/pthreads- w32-2-8-0-release.tar.gz]下载[/url][url=http://ffmpeg.arrozcru.org/wiki/index.php?title=Pthreads]参考[/url]
解压到MinGw/Msys/home/Administratorpthread
Msys命令行中:
cd pthread
回车
make GC
回车
然后在pthread中找到pthreadGC.dll 拷贝到 MinGw/bin MinGw/lib
...............
找到pthread.h sched.h拷贝到MinGw/include
(注意有个Bug 打开sched.h line:152 line154的两个函数的参数类型pid_t 改成 int 这个Bug是自己遇到的,修改并不会影响任何功能,但并没有官方验证)

目前这里就配置好所有的编译环境了!
以下是支持要编译的编解码库:

//===== Mp3lame [url=http://sourceforge.net/projects/lame/files/lame/]
下载[/url]
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为lame
Msys安装:
cd lame
回车
configure --enalbe-shared
回车
make
回车
make install
回车

//===== faac
faad2 [url=http://www.audiocoding.com/downloads.html]下载[/url](两个包)

faac
安装:

faac-1.28 需要一个补丁[url=http://bbs.chinavideo.org/attachment.php?aid=368&k=bdbac83ed608d3697e25e985527c3b9c&t=1267424723&fid=11&sid=ab1ep/jU/kNhVRIt9st/5vPwWJxoQCf7uJGIj3A397qIkfc]faac-1.28.diff[/url]
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为faac
把补丁放到 faac 目录中
Msys安装:
cd faac
回车
patch -p1 < faac-1.28.diff
回车
bootstrap
回车
configure --with-mp4v2 --enalbe-shared
回车
(不需要MP4 则第一个参数用--without-mp4v2 代替)
make
回车
make install
回车

faad
安装:

faad2-2.7 需要一个补丁[url=http://bbs.chinavideo.org/attachment.php?aid=369&k=4624ab33cb734713942aafb25213926c&t=1267427156&fid=11&sid=3fa8T1Vt6ibnc+wFOLP4vp0CkKhIQj1NZ+Hpq3RhVaiUQPw]faad2-2.7.diff[/url]
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为faad2
把补丁放到 faad2 目录中
Msys安装:
cd faad2
回车
patch -p1 < faad2-2.7.diff
回车
(也可以手动修改,注释掉faad2/frontend/main.c
line: 34
#define off_t __int64

bootstrap
回车

configure --with-mp4vip --enalbe-shared
回车
(第一个参数可选)

configure
顺利完成之后
libfaad/Makefile中修改:
AM_CFLAGS = -iquote $(top_srcdir)/include
改成:AM_CFLAGS = -I $(top_srcdir)/include
(这个是一个Bug修正以免出现:
cc1.exe: error: unrecognized command line option "-iquote"


make
回车
make install
回车
//===== amrnb
amrwb [url=http://www.penguin.cz/~utx/amr#download]下载[/url]
amrnb
安装:
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为amrnb
Msys安装:
cd amrnb
回车
configure --enalbe-shared
回车
make
回车
make install
回车

amrwb
安装:
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为amrwb
Msys安装:
cd amrwb
回车
configure --enalbe-shared
回车
make
回车
make install
回车

//===== xvidcore [url=http://www.xvid.org/Downloads.43.0.html]
下载[/url]
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为xvid
Msys安装:
cd xvid/build/generic
回车
configure --enalbe-shared
回车
make
回车
make install
回车

//===== H.264
下载x264库:
Windows 的控制台中输入
C
/...>cd F/mingw/msys/home/Administrator回车
(切换路径到Administrator目录)
F
/mingw/msys/home/Administrator > git clone git://git.videolan.org/vlc.git
这时x264包就会下载到mingw/msys/home/Administrator目录中

Msys安装:
cd x264
回车
configure --enalbe-shared
回车
make
回车
make install
回车

(
有个Bug,安装后mingw/msys/local/include/x264.h
line
209 修改 int i_bframe_pyramid;int b_bframe_pyramid;保存)
//**************
到这里 有一些常用的编解码库了下面来编译FFMPEG
FFMPEG [url=http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2]
下载[/url]
解压到 ~ 目录 MinGw/Msys/home/Administrator)改名目录为ffmpeg
(注意了,编译x264需要修改一下 ffmpegconfigure
line 1996 :中的 x264_encoder_open加上一个x264版本号,可以从F:/MinGw
/msys/local/bin
中的libx264-xx.dll得知,这里编译得到的是libx264-88.dll
所以line 1996 :中的 x264_encoder_open 改为x264_encoder_open_88,以解决
编译x264,编译ffmpeg提示 libx264 not found.

ffmpeg目录中新建一个文本文件 改名为cml (无扩展名)
编辑 cml
configure /
[size=3]--enable-ffplay /
--enable-static /
--enable-memalign-hack /
[/size][size=3]--enable-gpl / [/size]
[size=3]--enable-libmp3lame /
--enable-libfaac /
--enable-libfaad /
--enable-libx264 /
[/size][size=3]--enable-nonfree /[/size][size=3]
--enable-libamr-nb /
--enable-libamr-wb / [/size]
[size=3]--extra-ldflags=-L/usr/local/lib /
--extra-cflags=-I/usr/local/include [/size]
保存.

Msys中输入:
cml
回车
make
回车
make install
回车

大功告成! 不过xvid不能在ffmpeg编译中使用--enable-shared参数
不然会报错,你可以试试,如果可以,那就是我的机器问题!-愉快

xshzh 发表于2010-7-16 09:32 AM

查看完整版本: 2010_3_1最新完整 FFMPEG 编译详解

//

1、 用MinGw and Msys 编译出 libx264.dll.a和 libx264-88.dll,
2、 然后重命名 libx264.dll.a 为 libx264.lib.
3、 在vs2005用 x264编码器程序编译,bebug版成功release crash.how create libx264.lib for vc2005?
4、 .a可以进一步编译成.dll库。.lib不可以再编了,所以不能直接改。
5、 你需要把它编译成libx264.dll库
6、 或者将libx264.a放入mingw中和其他的库一起编成.dll
7、
8、 编译FFMPEG,
FFMPEG在http://www.ffmpeg.org/releases/ffmpeg-0.5.tar.bz2下载,然后解压到 ~ 目录 (MinGw/Msys/home/Administrator)改名目录为 ffmpeg(注意了,编译x264库 需要修改一下 ffmpeg的configure把 line 1996 :中的 x264_encoder_open加上一个x264版本号,可以从F:/MinGw/msys/local/bin中的libx264-xx.dll 得知,这里编译得到的是libx264-88.dll所以把line 1996:中的 x264_encoder_open 改为 x264_encoder_open_88,以解决编译x264后,编译ffmpeg 提示 libx264 not found.)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics