MinGW + x264 + ffmpeg

  今天,有个朋友问我怎么在windows下编译ffmpeg的库。其实网上有很多例程,但是我自己没亲自试过,本着实践出真知的想法,用了大概三个小时编译了一下。MinGW及x264的编译方法参考前文,这里就总结一下编译ffmpeg时遇到的问题。

  1. 下载ffmpeg

    http://www.ffmpeg.org/download.html

    解压后放在 MinGW安装位置/msys/1.0/projects/下(俺贪方便,具体位置随意了)

     

  2. 下载pkg-config for MinGW/msys

    pkg-config http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip

    pkg-config依赖的库: http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

    安装方法:把pkg-config.exe 和 libglib-2.0-0.DLL复制到环境变量包括的任意一个文件夹内,我是复制到MinGW安装路径\msys\1.0\bin

     

  3. 修改msys

    路径:MinGW安装路径\msys\1.0

    用记事本打开 msys.bat, 在第一行添加

    call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" ,其实就是添加vs的路径进去,按各自的位置改改就行了。作用就是会生成你在win下用的众多lib文件。

     

  4. 编译ffmpeg
    1. 打开msys.bat
    2. 进入ffmpeg所在位置
    3. ./configure --help(先看看你想要配置啥的)

      我的是:

      ./configure --enable-shared --enable-gpl --enable-debug --enable-libx264 --enable-memalign-hack --enable-network --enable-muxers

      --disable-yasm --enable-w32threads --extra-cflags=-I /(填写x264.h及x264_config.h所在文件夹) --extra-ldflags=-L/(libx264所在文件夹) --enable-protocols

      --cpu=i686 --enable-protocols

    4. 一些说明:

      1. 我没有yasm,所以我直接disable了
      2. --extra-cflags=-I 后面跟路径, --extra-ldflags=-L后面也是跟路径
      3. --cpu=i686 得写上,要不会提示:Threading is enabled, but there is no implementation of atomic operations available
      4. 对了,最好把安装路径写上 -- prefix = 你想安装到哪里
  5. make
  6. make install

  完事了。

  非常感谢这几位网友,他们的博文给了我很大的启发:

  1. http://blog.sina.com.cn/s/blog_54b5ea250100r15b.html (主要参考)
  2. http://blog.chinaunix.net/uid-20718335-id-2980793.html
  3. https://ffmpeg.org/trac/ffmpeg/ticket/2363 (解决多线程问题)
posted @ 2013-04-15 16:06  chsin  阅读(1283)  评论(0编辑  收藏  举报