ffmpeg windows下编译ffmpeg
windows下编译ffmpeg
今天由于工作需求需重新编译ffmpeg,百度,goole了一大堆,看眼花缭乱的,但几乎都是三种方案,大部分都是直接转发,一字不漏,错误的缺文件的还是照转,可是问题都大把的,于是乎,我整理如下资料,供初学者能少走弯路!
英文好的可以参考官网:
ffmpeg官网重新编译方案:https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW
一.环境:
1.系统:
win7 64位
2.编译工具:
mingw:mingw-get-inst-20101030.exe
yasm:yasm-1.3.0-win64.exe
pkg-config_0.23-3_win32
SDL-devel-1.2.14-mingw32.tar.gz(编译好的) 编译生成ffplay才需要
3.安装:
(1)mingw:如下图勾选
2.yasm:
yasm-1.3.0-win64.exe改名yasm.exe放到C:\MinGW\msys\1.0\bin文件夹下(根据自己mingw的安装路径)
3.pkg-config
pkg-config_0.23-3_win32文件夹下的bin下的libglib-2.0-0.dll和pkg-config.exe拷贝到C:\MinGW\msys\1.0\bin文件夹下(根据自己mingw的安装路径)
4.sdl-config
发现只有ffprobe.exe ffmpeg.exe
没有ffplay.exe, ffserver.exe
从sdl的官网下载已经编译好的dll:SDL-devel-1.2.14-mingw32.tar.gz
然后解压, 将其中的bin, lib, include 3个文件夹拷贝到mingw的目录下, 当询问是否覆盖, 选择是.
到bin目录找到sdl-config.用ultraedit打开. 将PREFIX=后面的值改为c:/mingw,接下来, 编译, 成功获得ffplay.exe.
二.ffmpeg编译有哪些方法:
1.cygwin 推荐:linux使用
2.MinGW+MSys 推荐:windows使用
三.如何使用编译后的ffmpeg:
1.配置:
打开C:\MinGW\msys\1.0\msys.bat文件,在文件头部加上
这句话的作用就是: 设置 2008 x86 的开发环境。我们主要是使用它的 lib.exe 生成 *.lib 文件。
运行msys.bat, 程序会根据你当前的用户名,在目录(C:\MinGW\msys\1.0\home)下建一个工作目录。
目录的名称和你的用户名一样。如果当前你的系统用户名是 administer, 那么你的工作目录就是(C:\MinGW\msys\1.0\home\administer)
2.编译:
解压缩 ffmpeg代码 到 MinGW 的工作目录。例如(C:\MinGW\msys\1.0\home\administer)
运行 C:\MinGW\msys\1.0\msys.bat,即可进入 MinGW 的工作目录了。
在命令行下输入如下命令:
静态编译:./configure --enable-shared --enable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"
静态编译:./configure --enable-shared --disable-static --enable-memalign-hack --prefix=c:/msys/1.0 --extra-cflags="-fno-common"
此参数可省:--prefix=c:/msys/1.0 --extra-cflags="-fno-common"
成功后,编译生成的文件保存在 (C:\MinGW\msys\1.0\local\bin),头文件保存在 (C:\MinGW\msys\1.0\local\include)。
注:
静态编译的会生成local文件夹;
动态编译的则不会,生成的和源码在一起,通过搜索查找需要的;
第三方库文件的安装
参考:http://blog.chinaunix.net/uid-29184939-id-4881778.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构