2010_3_1最新 完整 FFMPEG 编译详解「建议收藏」

2010_3_1最新 完整 FFMPEG 编译详解「建议收藏」2010_3_1最新完整FFMPEG编译详解[i=s]本帖最后由golocy于2010-3-105:23PM编辑[/i]2010_3_1最新FFMPEG编译详解在网上看了很多编译详解,都很零散。经过自己的编译,解决一些BUG,在此分享自己的一些经验…话不多说了!直接上贴。第一步:准备编译平台。需要一个MinGW和一个MSYS安装包以及MSYS

大家好,欢迎来到IT知识分享网。

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]

  (ffmpeg中 configure执行需要用到)

  复制到 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/Administrator的pthread中

  在Msys命令行中:

     cd pthread 回车

     make GC 回车

  然后在pthread中找到 pthreadGC.dll 拷贝到 MinGw/bin 和 MinGw/lib 中

  ……………找到 pthread.h 和 sched.h  拷贝到 MinGw/include 中

  (注意有个Bug 打开sched.h line:152 和 line:154 的两个函数的参数类型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库 需要修改一下 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.)

在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参数

不然会报错,你可以试试,如果可以,那就是我的机器问题! :-) 愉快

admin 发表于 2010-3-1 03:47 PM

非常完整,不错,谢谢分享!:victory:

lovesai 发表于 2010-3-19 10:29 AM

[b] [url=http://bbs.chinavideo.org/redirect.php?goto=findpost&pid=30236&ptid=7837]1#[/url] [i]golocy[/i] [/b]

请问这是在哪个平台上的编译?如果要应用到WIN32怎么编,编译后要能直接被VC调用的那种

wzyzb 发表于 2010-3-24 03:36 PM

给的链接好多东西都下不了

wzyzb 发表于 2010-3-24 04:46 PM

[b] [url=http://bbs.chinavideo.org/redirect.php?goto=findpost&pid=30236&ptid=7837]1#[/url] [i]golocy[/i] [/b] wget 和SDL 都不知道怎么下载啊 老兄!!

wzyzb 发表于 2010-3-24 07:21 PM

[b] [url=http://bbs.chinavideo.org/redirect.php?goto=findpost&pid=30236&ptid=7837]1#[/url] [i]golocy[/i] [/b] wget下载解压没有/bin目录

wzyzb 发表于 2010-3-26 02:37 PM

[b] [url=http://bbs.chinavideo.org/redirect.php?goto=findpost&pid=30236&ptid=7837]1#[/url] [i]golocy[/i] [/b]

autoconf 编译提示perl is not found

mlinmxf 发表于 2010-3-26 07:23 PM

楼主把你的系统环境先介绍一下啊。你是在win平台下编的?linux下要怎么编呢?

gboystal 发表于 2010-3-27 09:16 AM

搞了一下午,终于编完了。。

jcooper 发表于 2010-4-12 04:38 PM

很好,楼主辛苦了,谢谢总结,其实编译ff这个东西熟悉了就容易多了,难点在于如何用VC在win32平台下编译以获得最高性能

xchinasl2008 发表于 2010-4-21 04:26 PM

为什么我的X264下不下来啊

czt151715 发表于 2010-4-21 09:57 PM

可以下的

地址是:git clone git://git.videolan.org/x264.git

hunter104 发表于 2010-5-28 01:01 PM

enalbe 应该是enable吧?

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

在安装libtool的时候出现:

checking for non-GNU ld… no

configure: error: no acceptable ld found in $PATH

请问是咋回事?执行configure的时候。

谢谢

admin 发表于 2010-7-16 10:45 AM

没有找到“ld.exe”

xshzh 发表于 2010-7-16 11:23 AM

“ld.exe”哪里有下载,谢谢

tocute 发表于 2010-7-29 06:36 PM

請問在 win 7 中操作以上的動作

卻一直出現

Permission Denied   

即使用了  chmod 777 結果也是一樣

請問我該如何解決了   謝謝

admin 发表于 2010-7-29 07:24 PM

[quote]Permission Denied[/quote] 这肯定是权限问题了,建议你关闭UAC试试!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25807.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信