ffmpeg windows下编译过程

     尝试了vs2005和MSYS+MINGW两种方式 编译ffmpeg是件很痛苦的事,首先要下载一堆包:a52 amr faac faad libdca libdts libmad libgsm libnut libogg libtheora  libvorbis pthreads sdl x264 xvidcore zlib.  

       用VS2005编译ffmpeg是更痛苦的事,ffmpeg中的很多语法格式vs不支持,只好一点一点的改. 首先还要把前面下的包做成vs工程,不过好在没有多少语法问题,然后就慢慢改ffmpeg,avutil相对来说很容易, avcodec就费老劲了,汇编又不太懂,有个小技巧可以用gcc -S *.c *.asm将C文件转成VS可以认的汇编格式,然后再 改相应的汇编部分,花了一周时间,改出来的东西还不经如人意,而且MMX也不支持了,于是决定放弃  

       用MSYS+MINGW编译相对来说容易多了,首先安装下载的包,那些包里大都有编译安装说明,会有些小问题,查查网上很容易解决 ,我把那些包都装到/mingw下了,剩下就是编译ffmpeg了:打开 configure我把里面能 enable的都enable了,不过肯定是过不了的:), mlib是sun的,没找到 windows的dll,也懒得找了,如有windows下 dll文件可以按以下方式编译进去

          pexports xxx.dll > xxx.def  

           lib /machine:i386 /def:xxx.def  

       就可以得到mlib的lib,连接的时候把mlib的lib直接放到参数中即可,如ld ****** mlib.lib   这种格式mingw的ld是认得  

          还有libdc1394也没enable上,首先下了libdc1394的源码,编译告诉偶需要raw1394的库,接着下了raw1394的  库,编译出错,怒了,直接干掉enable-libdc1394     

 最终我的编译参数为./configure --prefix=d:/software/study/media/bin --enable-memalign-hack    --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-postproc --enable-swscale    --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-liba52 --enable-avisynth    --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libgsm     --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libx264    --enable-libxvid  --enable-demuxer=rm --extra-cflags=-I/mingw/include --extra-ldflags=-L/mingw/lib    --extra-libs=-lx264 --extra-libs=-lpthreadGC2 --extra-libs=-lws2_32 --extra-libs=-lwsock32    --extra-libs=-lgpac_static      

    MSYS+MINGW编译还是相对容易,查不多一天搞定,搞笑的是检测x264这个库居然找不到pthread,原因是-lpthreadGC2 放在了-lx264 之前.把-lx264放到-lpthreadGC2前就ok了

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值