编译环境:xp+msys+mingw

由于ffmpeg是linux下面的开源项目,源代码中和VC中的c/c++编译期是不兼容的,所以必须在windows上配置一个linux的编译环境,编译成二进制的dll动态库,然后在vc中链接这个dll库,从而实现windows平台上的基于ffmpeg的开发。msys+mingw正好适应我们的要求。

1.建立msys+mingw编译环境

 下载地址:

 http://sourceforge.net/project/showfiles.php?group_id=2435

1)下载 MSYS Base System/msys-1.0.11/MSYS-1.0.11.exe  按照默认安装即可,当然目录是可以改的。假设安装目录为c:/msys,下面所使用的c:/msys都注意替换为自己的安装目录。

2)下载MSYS bash /bash-3.1.17-2 /bash-3.1.17-2-msys-1.0.11-bin.tar.lzma  解压后将bin文件夹中的所有文件复制到c:/msys/bin目录下,覆盖sh.exe

3)下载GNU Binutils /Previous Release_ binutils-2.17.50 /binutils-2.17.50-20060824-1.tar.gz

      下载GCC Version 3 /Previous Release_ gcc-3.4.5-20060117-1/目录下的gcc-core-3.4.5-20060117-1.tar.gz和gcc-g++-       3.4.5-20060117-1.tar.gz

      下载MinGW API for MS-Windows /w32api-3.11 /w32api-3.11.tar.gz

       下载MinGW Runtime /mingw-runtime-3.14 /mingw-runtime-3.14.tar.gz

       这些文件下载好了之后,同一解压到C:/msys/mingw

4)由于我们最终是要编译的动态库是可以用vc来链接的,所以我们需要.lib文件,这就需要vc的lib命令来完成。

   首先找到vc安装目录下的vcvars32.bat文件,如我的路径是C:/Program Files/Microsoft Visual Studio/VC98/Bin/vcvars32.bat

  修改c:/msys目录下的“msys.bat”文件,注意用支持unix文本工具的编辑器打开,我用的是UE,在文件的最后加上一行

  call "C:/Program Files/Microsoft Visual Studio/VC98/Bin/vcvars32.bat"  注意替换成自己的目录。

5)系统整合
  复制c:/msys/etc/fstab.sample为c:/msys/etc/fstab,用文本编辑器打开c:/msys/etc/fstab编辑。(支持Unix风格的编辑     器),   把下面这行:
  c:/mingw /mingw
  改为:
  c:/msys/mingw /mingw
  完成以上步骤,MSys+MinGW系统就配置完成了

2.获取ffmpeg源码

 下载地址http://www.bairuitech.com/html/ruanjianxiazai/20071006/61.html这里面还包含了x264,暂时不考虑x264的编译。

 3.编译ffmpeg

  打开msys,出现的是一个命令行窗口,支持基本的linux命令。需要提一下的是如何访问windows下的目录,比如我们要进入c盘目录的话,执行命令"cd /c/",其实就可以把各个磁盘看成linux根目录下的一个文件夹。

   进入ffmpeg的目录,进行配置,要编译出动态库的话

   ./configure --prefix=/static --disable-shared --enable-static

   配置完之后执行

   make

   make install

   编译完成之后动态库就已经生成了.


  

更多推荐