ffmpeg编译

来源:互联网 发布:医学逻辑回归算法 编辑:程序博客网 时间:2024/05/16 13:00

   最近需要自己做播放器,要利用ffmpeg来做解码,于是我痛苦的历程就开始了,为期3天的摸爬滚打才真正编译出了静态库。 为了防止以后忘记,将编译过程记录下来。

   虽然其官网上有dll及lib,但是是以mingw的方式编译的,以后出ffmpeg库出问题了没法调试。 而且以前面使用VLC的经验来看FFMpeg是一个容错做的不是太好的库。

下面详细步骤:

基本上参照官网上的步骤:

http://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows

1. 准备工作

->MinGW (mingw-get-inst-20120426.exe) ,下载的是这个版本的。直接安装到D:\MinGw

        ->C99-to-C89 Converter & Wrapper 

     ->msinttypes (是两个头文件)

     ->YASM (WIN32版本)

     ->源码ffmpeg2.1版本

2. 将ffmpeg的源码放到D:\MinGw\msys\1.0\home\****(电脑的用户名)\

   将C99-to-C89里面的c99conv.exe、c99wrap.exe、makedef 复制到D:\MinGW\msys\1.0\bin

   将下载的YASM的文件改名为yasm.exe 然后放入到 D:\MinGW\msys\1.0\bin
   将D:\MinGW\msys\1.0\bin及D:\MinGw\bin 加入到环境变量中。

   将msinttypes 中的头文件解压出来,然后也放入到环境变量中

3. 打开 "Visual Studio 命令提示(2010)" 的命令行窗口,
   cd 跳转到这个目录 "C:\MinGW\msys\1.0",后运行 msys.bat 命令,
   这样就进入了即能运行 vs2010 的 cl 等命令,又能运行 msys 里面的命行的模式了

   另外还需要做2点:设置临时目录及替换link

   在命令行模式里输入 export TEMPDIR=/home/Administrator/temp

   在命令行模式里输入 which link,此时应该看到的是/bin/link, 那么输入命令  mv /bin/link.exe /bin/mingw-link.exe 现在再输入which link, 得到的提示应该就是:C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link (这里一定要注意,网上很多资料都没有提及到这点,导致你做configue时候,会出现c99wrap cl is unable to create*** 的错误,在config.log里也有相应的提示,不过当时自己太菜了,竟然没有根据提示找准问题,害的自己白白浪费了太多时间),

4. 开始编译:

   ./configure --enbale-memalign-hack --toolchain=msvc --disable-libx264

   make

   make install

后面就可以在 D:\MinGW\msys\1.0\local 下收获成果了。


PS: 可能出现error link 2001的错误。我是直接用msinttypes里面的stdint.h覆盖掉:C:\Program Files\Microsoft Visual Studio 9.0\VC\include下的文件的,做法不是太好,好想是可以用一个宏包起来更好。


  


0 0
原创粉丝点击