msys2 + MSVC(VS2019)编译ffmpeg6.0源码

以前使用的v1.2版,很多功能和使用方法发生了变化,需要重新编译新的ffmpeg版。 编译环境:  windows 10 , VS2019, MSYS2

1. msys2  下载安装 MSYS2 ,  https://www.msys2.org/ 

2. msys2 环境配置打开 msys2

2.1 安装相关软件

然后输入以下命令安装:

pacman -Syu

pacman -S base-devel

pacman -S yasm nasm gcc

pacman -S mingw-w64-x86_64-toolchain

pacman -S git

pacman -S make

pacman -S automake

pacman -S autoconf

pacman -S perl

pacman -S pkg-config

 2.2 b修改C:\msys64\msys2_shell.cmd文件,将 rem set MSYS2_PATH_TYPE=inherit 修改成 set MSYS2_PATH_TYPE=inherit

2.3 将C:\msys64\usr\bin\link.exe文件,重命名为link.exe_back

2.4 在C:\msys64目录下增加 msvc_build.bat文件内容为:

call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat"

msys2_shell.cmd -mingw64

让msys2工具 使用vs2019 x64编译工具命令(msvc)来运行编译 ffmpeg源码。

2.5  引入sdl2 vc库 ,为了让ffmpeg 编译出ffplay.exe项目

 2.5.1.下载sdl2  SDL2-devel-2.26.5-VC.zip    Release 2.26.5 · libsdl-org/SDL · GitHub

2.5.2  C:\msys64\mingw64\include目录下,增加 SDL2文件夹 内容为sdl2头文件,将头文件从下载的sdl2-devel-2.26.5-VC/SDL2-2.26.5/include复制过来。

2.5.3  C:\msys64\mingw64\lib目录下,增加SDL2文件夹内容为 SDL2-devel-2.26.5-VC.zip x64的lib文件

2.5.4.  C:\msys64\mingw64\lib\pkgconfig目录下 增加sdl2.pc文件内容为:

prefix=/mingw64

exec_prefix=${prefix}

libdir=${exec_prefix}/lib/SDL2

includedir=${prefix}/include/SDL2

Name: SDL2

Description: SDL2 Description

Version: 2.26.5

Libs: -L${libdir} -lSDL2 -lSDL2main

Libs.private:

Cflags: -I${includedir}

3. 通过git 下载ffmpeg源码。

git clone https://git.ffmpeg.org/ffmpeg.git ffmpe

下载的目录如下:

接下来打开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目录,其里面有如下目录:

到此结束。

参考

原文链接:https://blog.csdn.net/qq00769539/article/details/130269463

原文链接:https://blog.csdn.net/m0_63230155/article/details/132216971

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gmpy2 GMP is_prime函数底层c代码分析

偶然看到一篇paper(2018年发表),说GMP中的素性检测使用的是单独的Miller_Rabin方法,单独的Miller_Rabin素性检测会存在部分安全问题(低概率),然后突然想求证一下最新版本的GMP中是否进行了修改。…

Python如何使用Matplotlib模块的pie()函数绘制饼形图?

Python如何使用Matplotlib模块的pie函数绘制饼形图? 1 模块安装2 实现思路3 pie()函数说明4 实现过程4.1 导入包4.2 定义一个类4.3 读取数据并处理4.4 定义饼图绘制方法 5 完整源码 1 模块安装 先安装matplotlib: pip install matplotlib安装numpy模块…

Linux Docker 图形化工具 Portainer远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具,可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

exsi的安装和配置

直接虚拟真实机 vcent server 管理大量的exsi SXI原生架构模式的虚拟化技术,是不需要宿主操作系统的,它自己本身就是操作系统。因此,装ESXI的时候就等同于装操作系统,直接拿iso映像(光盘)装ESXI就可以了。 VMware vCente…

在Vue.js中,什么是slot(插槽)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

2.6 Windows驱动开发:使用IO与DPC定时器

本章将继续探索驱动开发中的基础部分,定时器在内核中同样很常用,在内核中定时器可以使用两种,即IO定时器,以及DPC定时器,一般来说IO定时器是DDK中提供的一种,该定时器可以为间隔为N秒做定时,但如…

万宾科技内涝积水监测仪效果,预警城市积水

当城市之中出现强降雨或者大暴雨,可能会导致雨水不断堆积到城市排水管网之中,可能还会淹没城市的排水系统时,这种现象被称为城市之中的内涝,并且在许多城市之中内涝问题日益引起人们的关注。 内涝积水监测仪的出现成为了希望的灯塔…

4种互斥机制比较

4种互斥机制 关中断禁止任务切换信号量互斥信号量 关中断 关中断(Disable Interrupts):通过禁用中断来实现互斥。在关中断期间,任何中断请求都会被忽略,从而确保了临界区的独占性。然而,这种方法会导致系统…

【python 生成器 面试必备】yield关键字,协程必知必会系列文章--自己控制程序调度,体验做上帝的感觉 1

python生成器系列文章目录 第一章 yield — Python (Part I) 文章目录 python生成器系列文章目录前言1. Generator Function 生成器函数2.并发和并行,抢占式和协作式2.Let’s implement Producer/Consumer pattern using subroutine: 生成器的状态 generator’s st…

Opencv!!在树莓派上安装Opencv!

一、更新树莓派系统 sudo apt-get update sudo apt-get upgrade二、安装python-opencv sudo apt-get install libopencv-dev sudo apt-get install python3-opencv三、查看是否安装成功 按以下命令顺序执行: python import cv2 cv2.__version__如果出现版本号&a…

Linux文件系统之inode

文章目录 1. 磁盘1.1 认识磁盘1.2 磁盘物理构造1.3 磁盘逻辑结构 2. 文件系统3. 如何理解目录 1. 磁盘 1.1 认识磁盘 文件 内容 属性,而文件是存储在磁盘上,那么可以理解为磁盘上存储的文件 存储的文件内容 存储的文件属性。 文件的内容采用的是块式…

Android模拟器的linux内核源码的下载

文章目录 Android模拟器的linux内核源码的下载 Android模拟器的linux内核源码的下载 git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git自己新建一个文件夹存放内核代码,命名随意。 切换一下分支就有东西了 切换到下面这个分支

金蝶云星空 CommonFileServer 任意文件读取漏洞复现

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、漏洞概述 金蝶云星空V7.X、V8.X所有私有云和混合云版本存在一个通…

SQL 日期函数

在数据库中,日期和时间是经常需要处理的数据类型之一。SQL提供了许多内置的日期函数,用于对日期和时间进行操作、计算和比较。这些函数可以帮助我们提取日期的各个部分(如年份、月份、日、小时、分钟等),执行日期的转换…

(五)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

基于自私羊群算法优化概率神经网络PNN的分类预测 - 附代码

基于自私羊群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于自私羊群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于自私羊群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

No209.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

软件工程-第7章 面向对象方法基础

第7章 面向对象方法基础 面向对象的基本概念 面向对象方法的世界观:一切系统都是由对象构成的,他们的相互作用、相互影响,构成了大千世界的各式各样系统。面向对象方法是一种以对象、对象关系等来构造软件系统模型的系统化方法。 面向对象 …

Maven介绍及配置

目录 一.Maven 1.介绍 坐标 仓库 1)中央仓库 2)本地仓库 3)私服 配置国内源 配置过程 二.Maven功能 2.项目构建 3.依赖管理 Maven Help插件 安装 ​使用 一.Maven 1.介绍 坐标 唯一的,通过以下代码的三个键值对确…

SARAS多步TD目标算法

SARAS多步TD目标算法 代码仓库:https://github.com/daiyizheng/DL/tree/master/09-rl SARSA算法是on-policy 时序差分 在迭代的时候,我们基于 ϵ \epsilon ϵ-贪婪法在当前状态 S t S_t St​ 选择一个动作 A t A_t At​ ,然后会进入到下一个状态 S…