安装编译ffmpeg

news/2024/10/4 15:20:55/文章来源:https://www.cnblogs.com/RedWetPlace/p/18275561

原文链接

 

安装MSYS2
msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。
类似的跨平台编译套件有:msys,cygwin,mingw

优势:

相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译
支持多种编译环境,可以很方便的整合 mingw 和 clang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:
为什么要安装MSYS2呢?因为ffmpeg对windows不够友好。

点击这里MSYS2进入官网,按如下步骤进行操作:

 

 

安装路径可自选:

 

 

 

配置
建议打开MSYS2 MINGW64进行以下所有步骤。

 

如果你用的默认的MSYS2 MSYS也就是我最开始的方式也没关系,请听我继续道来。

可以看到我最开始就用的MSYS2 MSYS:

执行命令pacman -S mingw-w64-x86_64-toolchain:

 

敲回车继续:

 

接下来执行命令pacman -S base-devel:

 

用MSYS2 MSYS的问题在于有些包搜索不到,导致有些命令用不了。

接下来可以看到我用MSYS2 MINGW64重新执行了之前的两个命令:

pacman -S mingw-w64-x86_64-toolchain

 

pacman -S base-devel:

 

重新安装过后,我们可以发现常用的linux命令都能使用了,gcc,make,ls,ar等等。

 

安装pkg-config
执行命令:

pacman -S mingw-w64-x86_64-pkg-config

pacman -S mingw-w64-x86_64-zlib

 

安装好后F:\msys2\mingw64\bin目录下应该有 pkg-config.exe文件:

 

如果没有,进入:https://download.gnome.org/binaries/win32/dependencies/下载,没有64位的,就下32位的。

 

解压后在bin目录会发现pkg-config.exe,把它解压移到F:\msys2\mingw64\bin里,每个人的路径可能不一样。

 

接下来安装glib_2.24.2-2_win64.zip:https://download.gnome.org/binaries/win64/glib/2.24/

解压后将 libglib-2.0-0.dll复制移到F:\msys2\mingw64\bin里,每个人的路径可能不一样。

 

最后将F:\msys2\mingw64\bin添加到Path环境变量,每个人的路径可能会不一样。

还可以新建系统变量PKG-CONFIG-PATH,值为F:\msys2\mingw64\lib\pkgconfig,注意每个人的路径可能会不一样。

编译ffmpeg
进入官网:https://www.ffmpeg.org/download.html#releases,点击下载:

 

解压后我将它放在的路径为F:\ffmpeg

接下来打开MSYS2 MINGW64进入ffmpeg源码的目录,并执行:./configure --prefix=../ffmpeg_buildout --disable-static --enable-shared --enable-version3 --disable-ffplay --enable-ffmpeg --disable-x86asm

 

应该会等好几分钟,我就是这样。千万不可慌张。

接下来编译,依次执行:

make -j4
make install -j4
1
2
这两步终端会输出很多东西,也需要好一会,学会等待。

 

 

至此你会发现ffmpeg同级路径会出现一个ffmpeg_builtout目录,其里面有如下目录:

 

并且可以找到ffmpeg.exe文件,初步断定编译成功。

接下来可以这么处理,删掉ffmpeg目录,将ffmpeg_builtout目录改名为ffmpeg,并将F:\ffmpeg\bin添加到环境变量Path里,因为ffmpeg.exe在这个路径里。

最后就可以打开终端执行ffmpeg -version查看是否安装成功啦:

 

至此ffmpeg编译成功。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/733659.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM并行训练4-megascale论文学习

字节megascale论文学习笔记算法优化 并行注意力机制 \[串行版本: y = x + MLP(LayerNorm(x + Attention(LayerNorm(x)))) \]\[并行版本: y = x + MLP(LayerNorm(x)) + Attention(LayerNorm(x)))) \]乍一看确实不是等价的, attention那块的后置mlp去哪了..这个其实没有理论证明,…

【Linux系列】centos搭建本地源

开始备份:查看光盘挂载路径:❗转义符关闭防火墙:测试一下:🎉Congratulations on successfully switching your local source!

1.Java基础

路线图:https://www.bilibili.com/read/cv9965357/JAVA入门 java SE/EE/ME jdk: java development kit java开发者工具包(安装路径不要包含中文与空格) 通过oracle官网下载:http://www.oracle.com 验证JDK安装成功:bin下的java.exe执行工具,javac.exe编译工具是否可用,…

Linux 提权-Docker 容器

本文通过 Google 翻译 Docker Breakout – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 什么是 Docker ? 2 寻找 Docker 权限2.1 升级 Shell 到完整 TTY 2.2 手动枚举 Docker 组中的用户 2.3 …

程序员如何提升个人技术影响力

此文转发于得物技术,如果侵权,联系删除 前言 都说程序员的成长是码出来的,此话不假。但如果既会写代码,还会写文章,还能讲PPT,那你离影响力还会远吗? 本文是针对每一个技术同学都适用。我将从行业技术大会主编的角色告诉你,如何打造自己的技术影响力,有哪些通用的手段…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发…

第三次blog总结

一、前言:家居强电电路模拟程序-3: 1.知识点:考察类间关系的设计。 2.题量:1道迭代难题。 3.难度:这次在上次的基础上添加了互斥开关和窗帘,有一定难度,需要考虑互斥开关的设计。家居强电电路模拟程序-4: 1.知识点:考察类间关系的设计。 2.题量:1道迭代难题。 3.难度…

windows下搭建lisp环境

因看了《黑客与画家》,想要跟着作者的《ANSI Common Lisp》学习一下lisp,记录一下lisp环境安装过程,及中间出现的问题。 lisp环境选择:emac+slime+clisp,在windows 11下安装。 1.安装Emacs Emacs官网:GNU Emacs - GNU Project1.1 进入官网,选择windows 1.2 选择 main GN…

深度学习--RBM(Restricted Boltzmann Machine)受限玻尔兹曼机-算法--91

目录1. 原理2. 结构 1. 原理 参考: https://bacterous.github.io/2018/05/22/Restricted Boltzmann Machine/ 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一宝。 Hinton教授是深度学习的开山鼻祖,也正是他在2006年的关于深度信念网络DBN的工作,以及…

【WPF】根据选项值显示不同的编辑控件(使用DataTemplateSelector)

接了一个小杂毛项目,大概情形是这样的:ZWT先生开的店是卖拆片机的,Z先生不仅卖机器,还贴心地提供一项服务:可以根据顾客需要修改两个电机的转向和转速(机器厂家有给SDK的,但Z自己不会写程序)。厂家有配套一个调节器,调整参数时连接到拆片机的串口上,然后旋转按钮可以…

OO第七,八次大作业总结

一、前言   在这个学期即将迎来尾声的时候,这个阶段的大作业也迎来了最后的两个迭代大作业,而本次博客就将围绕这两个迭代大作业讲述二、设计与分析  这两次的迭代作业的类设计其实没有很多的变化,只不过根据题目要求添加了互斥开关和受控窗帘,二极管这几个类,其中互斥…

微信内置H5支付

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣场景是用户通过微信扫app内的收款码,跳到一个h5页面。然后完成支付。 代码实现的整体流程: 使用微信扫码,码是app内生成的,码的内容是一个h5页面链接,扫码完成后跳转到自定义的h5支付界面。 扫码进入后,将页面展示所…