msys2使用QT的mingw编译器编译ffmpeg

2023-11-11

使用的时候最好关闭杀毒软件,否则configure和make会很慢
window编译ffmpeg mingw,要在windows搭建一个模拟linux环境,下载安装MSYS2-64, 网址:https://www.msys2.org/
我这里安装在了默认的路径
在这里插入图片描述安装完成后,将Qt的mingw32的库全部转移过来(直接拷贝就可以)
在这里插入图片描述拷贝完成后,运行mingw32.exe
在这里插入图片描述更新包数据块和系统核心包

pacman -S make yasm diffutils pkg-config

pacman -S nasm

修改etc下的fstab
c:/msys64/mingw32/ /mingw
在这里插入图片描述
然后启动mingw32.exe
写一个helloword的小程序测试一下
在这里插入图片描述
可以看到有输出,证明可以使用

gcc -v

在这里插入图片描述
证明可以使用

但是编译x264的时候出现了 No working C compiler found的错误,有可能是X264版本太高的问题,
这里换到了2015的一个版本后成功编译
在这里插入图片描述

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static --enable-pic --disable-cli

可以在下面这个网址下载x264

http://download.videolan.org/x264/snapshots/

在./cofigure时可能出现

 line ***:tr:command not found
    line ***:uname:command not found
    line ***cat:command not found

解决办法:安装coreutils,在安装目录的bin目录下将缺少的命令的exe和libintl3.dll,libiconv2.dll 文件拷贝到C:MinGW/msys/1.0/bin目录下

warning:pkg-config not found, library detection may fail

解决办法:下载pkg-config-0.23-2.zip及glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

把pkg-config.exe 和 glib_2.18.4-1_win32.zip中的libglib-2.0-0.dll放在mingw的bin目录下,或者放在$path目录下.
在这里插入图片描述
然后make && make install
在这里插入图片描述
x264这个文件夹是我自己创建的,将include和lib放了进去,方便后面编译ffmpeg

编译SDL

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static
make && make install

在这里插入图片描述
跟x264一样创建一个sdl文件夹,将include和lib放进去
编译libfdkaac
下载:https://sourceforge.net/projects/opencore-amr/files/fdk-aac/

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static
make && make install

编译ffmpeg

./configure --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm
./configure --arch=x86_32 --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm
 ./configure --arch=x86_32 --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-libfdk_aac --extra-cflags=-I$(pwd)/fdkaac/include --extra-ldflags=-L$(pwd)/fdkaac/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm

遇到这个错误

ERROR: sdl2 requested but not found

修改configure

6170   if enabled sdl2; then
6171       #SDL2_CONFIG="${cross_prefix}sdl2-config"
6172  		  SDL2_CONFIG="d:/project/SDL-release-2.0.12/sdl2-config"  #交叉编译sdl2目录

然后重新configure
成功后make && make install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

msys2使用QT的mingw编译器编译ffmpeg 的相关文章

  • ffmpeg 命令行,用于使用 Windows 7 从 Decklink 卡捕获(和录制)720p 音频和视频

    我正在尝试使用 Windows 7 720p 从 blackmagic Decklink 捕获卡捕获音频和视频 但我似乎无法正确获取 ffmpeg 命令行设置 ffmpeg list devices true f dshow i 虚拟 ds
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • 如何通过 Qt 创建网络服务 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • 如何将 QByteArray 转换为十六进制字符串?

    我有打击QByteArray QByteArray ba ba 0 0x01 ba 1 0x10 ba 2 0x00 ba 3 0x07 我真的不知道如何将此 QByteArray 转换为结果字符串 其中包含 01100007 我将使用 Q
  • 获取 QPushButton 在 2D 数组 QPushButton 上的索引

    我有一个二维数组QPushButton 当用户单击按钮时如何获取按钮的索引 例如当用户单击按钮时a 2 3 它会显示 2 3 该示例如下所示 Qt 4 5 使用对象名称 您可以为按钮指定唯一的对象名称 理想情况下 名称应该是有效的 C 标识
  • 如何从浮点数组创建新的 QImage

    我有一个代表图像的浮点数数组 列在前 我想在 QGraphicsSecene 上将图像显示为 QPixmap 为了做到这一点 我尝试使用 QImage 构造函数 QImage const uchar data int width int h
  • 如何为 qmlRegisterSingletonType 实现单例提供程序?

    我想在 QML 中使用 C 类作为 Singleton 实例 并认为我必须使用 qmlRegisterSingletonType 注册它们 此函数需要一个提供已注册 C 类的实例的函数 我在 Windows 上使用最新的 Qt 5 3 1
  • 如何使 Python、QT 和 Webkit 在无头服务器上工作?

    我有 Debian Linux 服务器 我用它来做各种事情 我希望它能够完成一些我需要定期完成的网络抓取工作 这段代码可以是在这里找到 http bit ly QeqvzX import sys from PyQt4 QtGui impor
  • 如何在 Qt Creator 中编辑 QtWebKit 的右键上下文菜单?

    好吧 这是我的困境 我正在使用 Qt Creator 制作一个使用 Webkit 的简单应用程序 我认为 Qt Creator 会有一种简单的方法来使用信号和槽编辑器编辑右键单击上下文菜单 但事实证明这不是真的 我知道 webkit 有与上
  • Qt qDebug() 在 Windows shell 中不起作用

    我正在使用一个qDebug Qt 框架的printf屏幕上有东西 当我从 Qt Creator 运行应用程序时它工作得很好 但是当我尝试从 Windows 执行它时cmd它什么也没显示 为什么会发生这种情况 你必须添加 CONFIG con
  • ffprobe show_frames 用于多个视频

    有什么方法可以在一个文件中同时查看多个视频的帧吗 我知道如何在一个视频中做到这一点 ffprobe show frameshttp myvirtualdirectory myvideo mp4 http myvirtualdirectory
  • QStyledItemDelegate 绘制自定义小部件失败

    在我的一个项目中 我使用的是QTableWidget为了显示一些复杂的计算结果 为了提高表格的可读性 我需要在单个表格单元格内显示两个对齐的值 后来我想通过使用颜色或箭头等来进一步自定义小部件 为此我源自QStyledItemDelegat
  • 如何让小部件在上下文菜单出现时接收鼠标释放事件

    在Ubuntu20 04上 当上下文菜单出现时 我无法让小部件接收鼠标释放事件 而Windows可以接收 我的pyqt版本是5 15 2 我考虑过手动发送鼠标释放事件 但我不知道当上下文菜单出现时哪些系统会收到鼠标释放事件 这样做可能会导致
  • QMainWindow 上的 Qt 布局

    我设计了一个QMainWindow with QtCreator s设计师 它由默认的中央小部件 aQWidget 其中包含一个QVBoxLayout以及其中的所有其他小部件 现在我想要的一切就是QVBoxLayout自动占据整个中央小部件
  • C++ SQL 查询构建库

    我正在寻找一个提供与 c SelectQueryBuilder 库类似功能的 c 库 http www codeproject com Articles 13419 SelectQueryBuilder Building complex a
  • QML 中可重用的字体属性[重复]

    这个问题在这里已经有答案了 在 QML 中 我希望能够定义一组字体属性以进行简单的语义重用 例如 代替 Text text This is a header font family Encode Sans weight Font Black
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • PyQt4 QPalette 不工作

    btn QtGui QPushButton Button self palettes btn palette palettes setColor btn backgroundRole QtCore Qt green btn setPalet

随机推荐

  • pytorch学习(六)---搭建简单的神经网络以及sequential的使用

    本篇自学笔记来自于b站 PyTorch深度学习快速入门教程 绝对通俗易懂 小土堆 Up主讲的非常通俗易懂 文章下方有视频连接 如有需要可移步up主讲解视频 如有侵权 实非故意 深表歉意 请与我联系 删除相关内容 本节以CIFAR10的模型结
  • emwin多语言实现的两种方式

    MCU开发中经常会涉及到多语言的制作和支持 本文将介绍两种制作字库的方法 字库的实现主要包含两部分 一是 字库 一是要显示的字符串 将这两个东西准备好 就可以实现了 第一种方法 详细的可以直接参考这篇博客 可 EMWIN 多国语言实现方法
  • 【信号采集】基于FPGA的高速信号采集系统

    1 高速采集系统实现的功能 FPGA内部功能模块组成 2 高速ADC接口的FPGA实现 3 数字下变频 DDC 的FPGA实现 4 三倍抽取功能的FPGA实现 5 Aurora接口的FPGA实现 高速采集系统的功能和组成 1 实现功能 对中
  • 《消息队列高手课》传输协议:应用程序之间对话的语言

    传输协议就是应用程序之间对话的语言 设计传输协议 并没有太多规范和要求 只要是通信双方的应用程序都能正确处理这个协议 并且没有歧义就好了 这节课 我们就来说一下设计高性能传输协议的一些方法和技巧 如何 断句 既然传输协议也是一种语言 那么在
  • CentOS8基础篇5:用户账号与用户组的创建

    一 用户与用户组概念 Linux是一个多用户 多任务的服务器操作系统 多用户多任务指可以在系统上建立多个用户 而多个用户可以在同一时间内登录同一个系统执行各自不同的任务 而互不影响 Linux用户是根据角色定义的 具体分为三种角色 超级用户
  • C++中拒绝编译器自动生成copy构造函数和copy赋值运算符操作(6)---《Effective C++》

    C 是一片荆棘遍布的雷区 等待用于挑战的你去探索 在 Effective C 系列的第5篇中我们已经看到当用户进行赋值或者拷贝操作的时候 即使我们没有定义拷贝构造函数或者拷贝赋值运算符操作 编译器也会自动为其生成copy构造函数和copy赋
  • P50发布,鸿蒙OS用户突破4000万!

    大家期盼已久的华为 P50 系列手机终于来了 7 月 29 日晚间 华为在线上举行 万象新生 为主题的旗舰新品发布会 华为旗舰新机 P50 系列正式全球发布 太难了 迟到 4 个月的 P50 发布 在今年 6 月份华为鸿蒙 2 0 发布会上
  • 基于HashHeap的LFU实现

    普通heap支持的操作和queue stack一样 就是push pop 只是pop出的是最小值 具体点就是add delMin hashheap支持一般HashMap的功能 同时维护最小值 和LinkedHashMap是对等的 后者是Ha
  • 手机开启应急预警通知 / 地震预警

    前言 安卓手机在检测到地震时 将发送地震预警通知 但此设置是默认关闭的 原因是以防引发用户恐慌从而引发安全问题 且开启此设置需要完成指引教程 因此默认关闭此设置 下文介绍如何开启此设置 开启方法 华为手机开启方法 以华为手机为例 详细介绍开
  • Metasploit渗透测试框架的基本使用

    1 Metasploit体系框架 1 基础库 metasploit基础库文件位于源码根目录路径下的libraries目录中 包括Rex framework core和framework base三部分 Rex是整个框架所依赖的最基础的一些组
  • Linux-fork(),vfork()和clone的区别

    在linux系统中 fork vfork 和clone函数都可以创建一个进程 但是它们的区别是什么呢 本文就这三者做一个较深入的分析 1 fork fork 函数的作用是创建一个新进程 由fork创建的进程称为子进程 fork函数调用一次返
  • 简单人脸检测

    1 1 Haar特征分类器介绍 Haar特征分类器就是一个XML文件 该文件中会描述人体各个部位的Haar特征值 包括人脸 眼睛 嘴唇等等 Haar特征分类器存放目录 D wsbSoft Anaconda3 envs tensorflow
  • 通过adbshell获取android的权限集合

    在Window控制台中输入如下命令可以看到Android系统中列出的所有权限 如果自定义权限注册成功 在这里也会找到这些自定义的权限 adb shell pm list permissions html view plain copy C
  • 解决Tomcat中POST方式传送参数大小限制问题

    之前我在做项目的时候遇到了这个问题 Tomcat是使用POST的方式发送请求参数 请求参数有九万多个 点击提交就没有反应了 后来查询资料知道了是请求参数过多了 超过了Tomcat的上传文件最大值2M 通过以下方法进行修改后解决了问题 在to
  • 云上城之个服务器维护时间,云上城之歌时间之塔开服时间表_云上城之歌新区开服预告_第一手游网手游开服表...

    今日开服 15 00 三十八区苍炎之门 已经开服 2021 08 10 10 00 三十八区巨石林野 已经开服 2021 08 09 15 00 三十八区荧光要塞 已经开服 10 00 三十八区雷神圣所 已经开服 2021 08 07 10
  • 基于Java的Cplex入门

    Cplex是一种数学优化技术 主要用于提高效率 快速实现策略并提高收益率 Cplex提供灵活的高性能优化程序 解决线性规划 Linear Programming 二次方程规划 Quadratic Programming 二次方程约束规划 Q
  • vue与C#实现自定义表单审批流程构建-前端

    vue与C 实现自定义表单审批流程构建 做信息化项目相信绝大部分人都接触过单据审批流程的需求 例如发起一个采购申请 需要几个节点审核 部门负责人审核 采购审核 财务审核等等 审批人也需要可自定义 以及可能会出现审批条件分支的情况 这时我们的
  • 织梦DEDECMS网站后台系统菜单点击没有反应的解决办法(除了核心)

    织梦DEDECMS模板网站后台系统菜单点击没有反应的解决办法 DEDECMS模板 问题说明 织梦系统的后台主页右上角一直是 载入中 而左边的系统菜单 这里指的是切换菜单 点击没有任何反应 只能在 核心 菜单中使用 其他的 模块 生成 采集
  • ENVI:如何进行图像融合?

    目录 有话要说 什么是图像融合 图像融合的方法以及特点 图像融合有什么好处 ENVI实操 1 1 加载需要融合的图像文件 1 2 搜寻工具并点击打开 Gram schmidt方法 1 3 输入低分辨率的多光谱图像文件 1 4 输入高分辨率的
  • msys2使用QT的mingw编译器编译ffmpeg

    使用的时候最好关闭杀毒软件 否则configure和make会很慢 window编译ffmpeg mingw 要在windows搭建一个模拟linux环境 下载安装MSYS2 64 网址 https www msys2 org 我这里安装在