ffmpeg 64位静态库编译
最近在用vs2017编译webrtc,发现webrtc官方不让用msvc编译器编译里面的ffmpeg,但是又需要用到ffmpeg,于是单独编译了ffmpeg,编译的是ffmpeg的动态库版本,然后在webrtc里面链接库和头文件。
而最终在demo的成果物里面,需要包含了avcodec-59.dll,avdevice-59.dll,avfilter-8.dll等ffmpeg的动态库,demo才能运行,而如果编译出ffmpeg的静态库,则webrtc的demo里面就不需要这些动态库,发布相关的安装包时,安装包能小不少。
关于webrtc的编译,可以参考我的如下链接:
https://blog.youkuaiyun.com/tusong86/article/details/120554374
ffmpeg的动态库编译其实是简单的,主要是因为ffmpeg对外提供的是标准的c接口,所以在windows平台,mingw编译出的动态库,无论是vs2008,还是vs2015,还是vs2019,都是可以正常链接的。但是如果编译的是ffmpeg的静态库版本,由于静态库的本质跟动态库不一样,静态库的本质,其实跟linux的.o文件,windows的obj文件是一样的,vs2015编译的静态库,vs2017可能就没法用,故编译时,采取vs2017编译器编译ffmpeg。
ffmpeg在windows下提供的编译环境是mingw.
一、安装MinGW-w64
打开网址:https://sourceforge.net/projects/mingw-w64/files/,选择下载如下:

这是个在线安装工具,本人安装到的是c盘,如下是安装成功后的截图。

双击进入到文件夹mingw64里面,如下所示:

注意到上面红色方框的文件夹msys,这是个工具集文件夹,里面会有bash,grep等命令的程序文件,在安装mingw64的时候,是没有的,这里是我下载好后放进去的,此外后续编译ffmpeg之前,还需要先用gcc编译yasm,为此需要将mingw64下面的bin目录加入到path路径下,如下图所示:

然后我们说说msys的下载。
二、下载msys
打开如下网址:
https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/
选择如下红色方框的zip文件。

下载后,我们将MSYS-20111123.zip解压缩,并放置于mingw-64的安装目录下,用户可以通过上面的图片找到具体放置位置.
三 编译安装yasm
yasm是个汇编器,在编译ffmpeg的时候,需要用到,为此,先要在mingw的环境下,编译安装yasm.
首先下载yasm,这个比较容易,下载地址如下:
https://www.linuxfromscratch.org/blfs/view/svn/gene

本文详细介绍了如何在Windows下使用VS2017编译器编译ffmpeg的静态库版本,包括安装MinGW-w64、配置yasm、解决编译过程中的问题,以及注意事项,以满足webrtc项目对编译环境的需求。
最低0.47元/天 解锁文章
3668

被折叠的 条评论
为什么被折叠?



