当前位置: 首页 > news >正文

2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

安装MSYS2

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

优势:

  1. 相对于 cygwinmsys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译
  2. 支持多种编译环境,可以很方便的整合 mingwclang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:

为什么要安装MSYS2呢?因为ffmpegwindows不够友好。

点击这里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命令都能使用了,gccmakelsar等等。

安装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

这两步终端会输出很多东西,也需要好一会,学会等待。

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

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

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

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

至此ffmpeg编译成功。

相关文章:

2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

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

【SpringBoot】87、SpringBoot中集成Redisson实现Redis分布式锁

1、Redisson 介绍 Redisson 是架设在 Redis 基础上的一个 Java 驻内存数据网格(In-Memory Data Grid)。Redisson 在基于 NIO 的 Netty 框架上,充分的利用了 Redis 键值数据库提供的一系列优势,在 Java 实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的…...

宝藏级画图工具-drawio

今天推荐一款非常好用的免费开源画图工具drawio. Drawio即可以下载安装到本地,也可以在线编辑,在线编辑网址为 https://app.diagrams.net/。 本地版下载地址为https://github.com/jgraph/drawio-desktop/releases 1、支持各类图形 Drawio可以非常便捷…...

36_windows环境debug Nginx 源码-使用 VSCode 和WSL

文章目录 配置 WSL编译 NginxVSCode 安装插件launch.json配置 WSL sudo apt-get -y install gcc cmake sudo apt-get -y install pcre sudo apt-get -y install libpcre3 libpcre3-dev sudo apt-get...

海康威视iVMS综合安防系统任意文件上传(0Day)

漏洞描述 攻击者通过请求/svm/api/external/report接口任意上传文件,导致获取服务器webshell权限,同时可远程进行恶意代码执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和…...

SOME/IP通信对数据包的大小有要求

SOME/IP通信对数据包的大小有要求,因为SOME/IP是基于UDP协议的,而UDP协议有一个最大传输单元(MTU)的限制,即每个数据包的大小不能超过MTU的值。 不同的网络环境下,MTU的值可能不同,一般在1500字节到9000字节之间。 如果SOME/IP数据包的大小超过了MTU的值,那么就需要进…...

苹果电脑会自动清理垃圾吗 苹果电脑系统垃圾怎么清除

苹果电脑是很多人喜欢使用的一种电脑,它有着优美的外观,流畅的操作系统,丰富的应用程序和高效的性能。但是,随着时间的推移,苹果电脑也会产生一些不必要的文件和数据,这些文件和数据就是我们常说的垃圾。那…...

【0216】stats collector(统计信息收集器)资源初始化之获取IPV4套接字地址信息(2)

相关阅读: 【0215】stats collector(统计信息收集器)工作原理之资源初始化(1) 1. 如何获取ipv4套接字地址信息 在【0215】stats collector(统计信息收集器)工作原理之资源初始化(1)一文的2.1.3节中讲解了stats collector进程会创建UDP,与其他进程进行通信,从而实现…...

uni-app 面容、指纹识别插件(uni-face-login)

面容、指纹识别插件(uni-face-login) 介绍 人脸指纹登录授权,可以使用手机自带的人脸、指纹进行生物识别,进而判断是否机主本人,从而进行授权验证,适配安卓、iOS、鸿蒙设备 猛戳这里去插件市场看看 使用 该插件支持鸿蒙、安卓…...

专治疗懒病:GO、KEGG富集分析一体函数

之前我们写过GO、KEGG的富集分析,参见:补充更新:GO、KEGG(批量分组)分析及可视化。演示了差异基因KEGG或者GO的分析流程。其实差异基因的富集分析输入的文件只需要一组基因就可以了。所以我们发挥了专治懒病的优良传统…...

pygame第6课——贪吃蛇小游戏

今天我们开始Pygame的第六课,前几节课的内容在这里【点我】,欢迎大家前去考古: 今天我们一起来学习制作一个小游戏【贪吃蛇】,这是一个非常经典的小游戏,那么我们一起开始吧 1、游戏准备工作 import pygame, random,o…...

iptables之iptables表、链、规则 、匹配模式、扩展模块、连接追踪模块(一)

一、iptables的链 1.请求到达本机: PREROUTING --> INPUT --> Local Process (本机) 2.请求经过本机: PREROUTING --> FORWARD --> POSTROUTING 3.请求从本机发出:local Process(本机&#xf…...

Mac 卸载appium

安装了最新版的appium 2.0.1,使用中各种问题,卡顿....,最终决定回退的。记录下卸载的过程 1.打开终端应用程序 2.卸载全局安装的 Appium 运行以下命令以卸载全局安装的 Appium: npm uninstall -g appium 出现报错:Error: EACCES: permiss…...

数据结构----哈夫曼树

这里写目录标题 基本概念引子基本概念各种路径长度各种带权路径长度结点的带权路径长度树的带权路径长度哈夫曼树 哈夫曼树的构造理论基础构造思想总结 哈夫曼树的实现哈夫曼编码前缀编码哈夫曼编码的思想案例代码实现 编码与解码 基本概念 引子 哈夫曼树就是寻找构造最优二叉…...

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例 简介系统登录日志类LoginLogEntity .java 一、环绕处理方式1、自定义注解类LoginLogAop.class2、切面处理类LogoutLogAspect.java 二、前置处理方式:1、自定义注解类Log…...

UE4/UE5 照明构建失败 “Lightmass crashed”解决“数组索引越界”

在构建全局光照时,经常会出现“Lightmass crashed”的错误,导致光照构建失败。本文将分析这一问题的原因,并给出解决建议。 UE4 版本4.26 报错如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…...

并发编程系列-Semaphore

Semaphore&#xff0c;如今通常被翻译为"信号量"&#xff0c;过去也曾被翻译为"信号灯"&#xff0c;因为类似于现实生活中的红绿灯&#xff0c;车辆是否能通行取决于是否是绿灯。同样&#xff0c;在编程世界中&#xff0c;线程是否能执行取决于信号量是否允…...

3年 Android 开发的面试心经(后悔当初没有拿 N+1)

作者&#xff1a;勇闯天涯 当某人顺利通过大厂面试时&#xff0c;总会有人认为这是运气比较好罢了&#xff0c;但他们不曾得知对方之前受过多少苦和委屈&#xff0c;又付出了多少努力一步步去突破这些困境。正是因为他们的努力付出&#xff0c;在合适的时间与地点&#xff0c;用…...

【c语言】 -- 指针进阶

&#x1f4d5;博主介绍&#xff1a;目前大一正在学习c语言&#xff0c;数据结构&#xff0c;计算机网络。 c语言学习&#xff0c;是为了更好的学习其他的编程语言&#xff0c;C语言是母体语言&#xff0c;是人机交互接近底层的桥梁。 本章来学习指针进阶。 让我们开启c语言学习…...

软件压力测试对软件产品起到什么作用?

一、软件压力测试是什么? 软件压力测试是一种通过模拟正常使用环境中可能出现的大量用户和大数据量的情况&#xff0c;来评估软件系统在压力下的稳定性和性能表现的测试方法。在软件开发过程中&#xff0c;经常会遇到一些性能瓶颈和稳定性问题&#xff0c;而软件压力测试的作…...

AI赋能5G核心网故障诊断:从PCAP解析到智能根因分析的工程实践

1. 项目概述&#xff1a;当AI遇见5G核心网故障诊断在5G核心网的运维与测试一线干了这么多年&#xff0c;最头疼的莫过于面对海量的PCAP抓包文件。一个复杂的信令流程下来&#xff0c;动辄几千甚至上万个数据包&#xff0c;工程师需要像侦探一样&#xff0c;逐帧审视协议交互&am…...

硬件答辩问题总结

一、电源纹波是什么&#xff0c;为什么LDO的小&#xff0c;DCDC的大1.电源纹波电源纹波 是指直流电源输出电压上叠加的 交流波动成分&#xff0c;表现为电压在理想直流值附近上下波动。2.LDO 纹波小原理LDO 内部是一个 调整管&#xff08;可变电阻&#xff09; 串联在输入和输出…...

BLE四大广播模式详解:可连接/不可连接/定向/周期广播

一、前言在低功耗蓝牙&#xff08;BLE&#xff09;开发中&#xff0c;广播&#xff08;Advertising&#xff09;是设备发现、连接建立、数据广播、设备重连的核心基石&#xff0c;所有BLE交互流程均始于广播报文的收发。不同于传统经典蓝牙&#xff0c;BLE所有广播行为标准化、…...

从多路复用到三维光阵:Arduino驱动8x8x8 LED立方体全解析

1. 项目概述&#xff1a;用Arduino点亮一个三维世界几年前&#xff0c;我第一次在创客展上看到一个8x8x8的LED立方体&#xff0c;那种由数百个光点构成的、在三维空间中流动的动画效果&#xff0c;瞬间就把我吸引住了。它不像普通的平面LED屏&#xff0c;而是真正有“深度”的光…...

Windows终极PDF处理工具:3步免费安装Poppler完整指南

Windows终极PDF处理工具&#xff1a;3步免费安装Poppler完整指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 你是否曾经为在Windows上处理PDF文…...

FT231XQ USB串口桥接板设计解析与实战应用指南

1. 项目概述&#xff1a;从FT232R到FT231XQ的USB串口桥接板演进在嵌入式开发和硬件调试的日常工作中&#xff0c;一个可靠、小巧且功能清晰的USB转串口&#xff08;UART&#xff09;桥接板&#xff08;Breakout Board&#xff0c; 简称BoB&#xff09;几乎是工程师手边的标配工…...

Windows文件夹共享

目标&#xff1a;同一局域网实现在一台计算机上共享文件夹&#xff0c;在另一台电脑访问一、电脑A 1.点击要共享的文件夹 -> 属性 -> 共享2.添加Everyone用户组3.控制面板中网络共享关闭密码保存&#xff0c;在访问时不用输入账号密码。二、电脑B 1.在文件资源管理器路径…...

OmenSuperHub:释放惠普游戏本性能的纯净开源控制中心

OmenSuperHub&#xff1a;释放惠普游戏本性能的纯净开源控制中心 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为官方…...

十年以上经验的建站公司推荐|策划强、落地稳的网站制作公司盘点

互联网时代&#xff0c;企业官网已从单纯的信息展示窗口升级为集品牌价值传递、用户体验连接与业务高效转化于一体的核心数字阵地。行业报告显示&#xff0c;优质官网可帮助企业线上转化率提升35%-60%&#xff0c;而低效官网则可能导致潜在客户大量流失。面对市场上众多的网站建…...

圈复杂度>12=技术债炸弹?DeepSeek静态分析实战:从17.8→3.2的重构路径全披露

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;圈复杂度&#xff1e;12技术债炸弹&#xff1f;DeepSeek静态分析实战&#xff1a;从17.8→3.2的重构路径全披露 当函数圈复杂度&#xff08;Cyclomatic Complexity&#xff09;持续高于12&#xff0c;它不再是…...