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

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

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

相关文章

Scala---数据基础

一、数据类型 二、变量和常量的声明 定义变量或者常量的时候,也可以写上返回的类型,一般省略,如:val a:Int 10常量不可再赋值 1./** 2. * 定义变量和常量 3. * 变量 :用 var 定义 ,可修改 4. * 常量 :用 val 定…

移动端APP版本治理

1 背景 在许多公司,APP版本都是不受重视的,产品忙着借鉴,开发埋头编码,测试想着不粘锅。 只有在用户反馈app不能用的时候,你回复客服说,让用户升级最新版本,是不是很真实。 而且业界也很少有…

AI创作系统ChatGPT源码+AI绘画系统+支持OpenAI DALL-E3文生图,可直接对话文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。新增支…

学Diffusion前需要储备的一些知识点

自学Diffusion是非常困难的,尤其是到了VAE和VI这里基本找不到比较好的中文资料,甚至是涉及到一些重参数化,高斯混合之类的问题摸不着来龙去脉。在本文中,基本不会涉及公式,只有intuition和理解,如果要看公式…

正点原子嵌入式linux驱动开发——Linux ADC驱动

在之前的笔记中,学习了如何给ICM20608编写IIO驱动,ICM20608本质就是ADC,因此纯粹的ADC驱动也是IIO驱动框架的。本章就学习一下如何使用STM32MP1内部的ADC,并且在学习巩固一下IIO驱动。 ADC简介 ADC ADC,Analog to D…

C/C++调试工具 - gdb详解

C/C调试工具 -gdb详解 1 简介 2 常用的命令 3 使用的条件 4 程序调试 4.1 直接运行程序 4.2 断点调试(在某一行) 4.3 断点调试(在函数入口处打断点) 5 调试core文件 5.1 生成core文件的方法 5.2 调试core文件 1 简介 GDB是Linux下非常好用且强大的调试工具。GD…

提升代码复用性:探讨Mixin类在面向对象语言中的独特作用和优势

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、m…

Spring 只用一招,就摆脱被垃圾回收的命运,拯救了自己

SpringBoot ApplicationContext 会被 JVM 当成垃圾对象,然后回收掉吗? 最近五阳哥在复习JVM 垃圾回收的知识,被别人问到这个问题,我心里感到一惊,如果Spring 被回收掉,Spring管理的bean全部会被回收&#…

Linux系统简介与开源精神

🎥 屿小夏 : 个人主页 🔥个人专栏 : Linux系统理论 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️Linux系统背景☁️UNIX发展史☁️Linux发展史☁️Linux系统企业应用现…

TDengine 与煤科院五大系统实现兼容性互认,助力煤矿智能化安全体系搭建

近日,涛思数据与煤炭科学技术研究院(以下简称煤科院)已完成数个产品兼容互认证工作,经双方共同严格测试,涛思数据旗下物联网、工业大数据平台 TDengine V3.X 与煤炭科学技术研究院旗下煤矿复合灾害监测监控预警系统、煤…

LeetCode算法心得——高级访客(模拟枚举+小窗口)

大家好,我是晴天学长,今天的周赛第二题,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .高级访客 给你一个长度为 n 、下标从 0 开始的二维字符串数组 access_times 。对于每个 …

μC/OS-II---计时器管理1(os_tmr.c)

目录 创建一个计时器重新启动一个计时器停止一个计时器删除一个计时器 计时器是倒计时器,当计数器达到零时执行某个动作。用户通过回调函数提供这个动作。回调函数是用户声明的函数,在计时器到期时被调用。在回调函数中绝对不能进行阻塞调用(…