我的工作内容是负责音视频编解码,自然,ffmpeg也是我经常使用的库。而我从来没有在windows上自己编译过。
在某一天,当我把完成的项目交到领导手里时,领导语重心长的对我说,你这个程序太大了啊,回去弄小点,控制在5M之内。我看了看依赖的ffmepg动态库大小,总有28M多,之前用的都是网上别人编译好的库,由此我走上了编译ffmpeg的道路。
没错,查资料,首先配置环境,mingw不用说了,都是别人嚼烂的。下载x264源码,下载ffmpeg源码。
-
先编译x264,因为ffmpeg要依赖这个库,跟着网上的做,Windows编译x264 make的时候总是出错,查看config.log文件,fseeko找不到,然后找啊找,找到这个ffmpeg+x264 Windows MSVC 静态编译 ,从此文章发现了问题,configure 之前要加CC=cl,切换编译器。然后正确编译出libx264.lib库。
-
继续编译ffmpeg,configure 的参数一定要加–toolchain=msvc,不然就算编译出来了,也要依赖很多mingw的库,在vs里使用会有很多符号冲突和重定义。按照自己的需求定制configue即可。我遇到的问题是添加–enable-libx264参数后找不到libx264.lib库。查看configure帮助–extra-cflags --extra-ldf