ffmpeg for windows

来源:互联网 发布:vscode php 编辑:程序博客网 时间:2024/06/18 00:44
1下载安装 TortoiseSVN
 http://tortoisesvn.tigris.org/ 下载,
2 get ffmpeg source code
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
3 下载安装 mingw,假设安装在c:/mingw
4 下载安装 msys,为了省事,可安装在c:/mingw/bin/1.0/,否则需要设置环境变量,在path中加上:c:/mingw
5下载安装lame
进入msys环境,进入lame目录下
configure
make
make install
如果提示bash的错误,就是找不到bash.exe,可以到mingw网站下载base.exe,解压放在msys/bin 下面就行了

6.支持xvid x264
xvid的编译安装
http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
进入msys,xvid
configure
make
make install
7 x264
svn co svn://svn.videolan.org/x264/trunk x264
msys
configure
make
make install
6.mpg4 aacfaad2和faac就行
下载http://www.audiocoding.com/modules/mydownloads/
FAAD2的编译
cd faad2
autoreconf -vif
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install
faac的编译
cd faac
chmod +x bootstrap
./bootstrap
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install

7.支持3gp格式
a.先到www.3gpp.org下载以下三个文件:
- http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26204-520.zip
- http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26073-530.zip
- http://www.3gpp.org/ftp/Specs/2004-03/Rel-5/26_series/26104-540.zip
a分别解压缩到以下文件夹:
- 26204-520.zip into libavcodec/amrwb_float
- 26073-530.zip into libavcodec/amr
- 26104-540.zip into libavcodec/amr_float
b.重新编译ffmpeg,记得加上–enable-amr_nb –enable-amr_wb
c.执行以下命令即可完成转换
ffmpeg -i test.avi -y -b 20 -s sqcif -r 10 -acodec amr_wb -ab 23.85 -ac 1 -ar 16000 test.3gp
 
好了,基本ffmpeg支持的格式,我们基本都做好前期准备了,下面是ffmpeg的编译

./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame--enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg--enable-vorbis --enable-xvid --enable-a52 --enable-a52bin--enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac--enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install
补充1:
关于3gp的编译,如果大家要编译--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同时编译,我不大清楚这两者到底有什么区别,似乎fixed是修正版,管他呢,编译的方法:
wget http://www.3gpp.org/ftp/Specs/ar ... 6.073/26073-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr目录下
修改libavcodec/amr/makefile 找到CFLAGS = -Wall -pedantic-errors -I.$(CFLAGS_$(MODE)) -D$(VAD) 换成CFLAGS = -Wall -I. $(CFLAGS_$(MODE))-D$(VAD) -DMMS_IO
整体编译参数就是
./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame--enable-amr_nb-fixed --enable-amr_wb --enable-amr_if2 --enable-libogg--enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-dts--enable-pp --enable-faad --enable-faadbin --enable-faac --enable-x264--enable-pthreads --disable-ffserver --disable-ffplay
make
make install
 
如果想编译出可以VC下使用的.lib 和.dll,如下:
1 在msys.bat 加上一句:
call "C:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT"
可根据VC安装的路径调整。
2 ./configure选项包含: --enable-shared --disable-static
3 ffmpeg的common.mak要作下面的修改才能生成dll的同时生成lib
ifeq ($(CONFIG_WIN32),yes)
LDFLAGS = -Wl,--output-def,$(@:.dll=.def),--out-implib,lib$(SLIBNAME:$(SLIBSUF)=.dll.a)
endif 
 

我编译过程出现两个小错误:/libavcodec/tigertexseqv.c:variable  ff_lon2_tab cant be auto-imported.
  /livavutil/gxf.c: variable   ff_frame_rate_tab cant be auto-imported.
看了一下,这两变量可能是写text的,直接在这两个.c中注释掉,再make,就成功了。编译出来,找到了如下一些文件:
avformat-50.lib,avformat-50.dll,avformat.dll
avcodec-51.lib,avcodec-51.dll,avcodec.dll
avutil-49.lib,avutil-49.dll,avutil.dll
上面带版本号和不带版本号的文件应该是完全一样的
建立一个VC的命令行的空工程,把output_example.c加进来,把三个lib文件link上,再把四个目录加好。在debug上添加一个参数,比如f:/1.mpg,然后F5开始debug.
一切OK.看来那两个小问题没有大的影响。以后有空再慢慢解决。