ffmpeg windows环境MinGW+msys2编译so库

一、安装MinGW

1.1、下载MinGW

在这里插入图片描述

1.2、下载完成后,会得到一个名为 mingw-get-setup.exe 的安装包,双击打开它,可以看到如下的对话框:

在这里插入图片描述

1.3、直接点击“Install”,进入下面的对话框

在这里插入图片描述

1.4、可根据自己操作系统的实际情况,自定义 MinGW 的安装位置(例如我选择将其安装到 E 盘),然后点击“continue”,进入下面的对话框:

在这里插入图片描述

1.5、 进入安装 MinGW 配置器的界面,读者耐心等待安装完成(显示 100%)即可。安装完成之后,我们会得到一个名为 “MinGW Installer Manager” 的软件,借助它,我们可以随时根据需要修改 GCC 编译器的配置。点击“continue”,会自动弹出配置界面,如下所示:

在这里插入图片描述

1.6、为使 GCC 同时支持编译 C 语言和 C++,需勾选图中标注的 2 项。勾选完成后,在菜单栏中选择Installation -> Apply Changes,弹出如下对话框:

在这里插入图片描述

1.7、在安装完成的基础上,我们需要手动配置 PATH 环境变量

在这里插入图片描述

1.8、打开命令行窗口(通过在搜索栏中执行 cmd 指令即可),输入gcc -v指令,如果输出 GCC 编译器的具体信息,则表示安装成功,例如:

在这里插入图片描述

二、安装msys2

2.1、下载msys2

在这里插入图片描述
在这里插入图片描述

2.2、双击运行.exe

在这里插入图片描述

2.3、点击“下一步”

在这里插入图片描述

2.4、完成后,点击“完成”即可

在这里插入图片描述

2.5、进入安装目录,执行.\msys2_shell.cmd -mingw64

在这里插入图片描述
在这里插入图片描述

2.6、使用pacman安装编译FFmpeg时所需要的工具

pacman -S  mingw-w64-x86_64-toolchain git make automake  autoconf perl libtool mingw-w64-x86_64-cmake pkg-config yasm diffutils nasm

在这里插入图片描述

三、编译FFmpeg

3.1、在msys2的home文件夹下找到以自己windows用户名命名的文件夹下创建ffmpeg,因为只有在这里创建的文件,才能被msys2识别

在这里插入图片描述

3.2、下载FFmpeg

在这里插入图片描述

3.3、设置交叉编译的环境变量

export PATH=$PATH:/d/Android\AndroidStudio/SDK/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/bin

在这里插入图片描述

  • 一定要把windows路径的"“换成”/"

3.4、进入ffmpeg-4.4.4目录

在这里插入图片描述

3.5、 ./configure --help查看编译可配置的参数

在这里插入图片描述

  • –prefix 配置安装路径参数
    在这里插入图片描述

  • 配置交叉编译参数
    在这里插入图片描述

  • 配置不需要生成相关工具
    在这里插入图片描述

3.6、执行configure

在这里插入图片描述

  • 使用""+enter可以换行输入多行参数
    支持的解码
    支持的编码

3.7、执行make -j8

在这里插入图片描述

3.8、执行make install

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

数字孪生:重塑政府决策与公共服务

在之前的文章中为大家分享了数字孪生在很多行业的应用场景,本文和大家一起探讨一下数字孪生在政务管理方面能有哪些应用,以及其对公共服务提供的积极影响。 1)城市规划方面 数字孪生技术可用于模拟城市的发展和规划。政府可以建立城市的虚拟…

C++ DAY6

一、菱形继承 又叫钻石继承,由公共子类派生出多个中间子类,又由多个中间子类派生出汇聚子类,汇聚子类会 从中间子类得到从公共基类继承下来的多个成员。 A --------公共基类/ \B C ------- 中间子类\ /D -------…

聚类分析 | MATLAB实现基于DBSCAD密度聚类算法可视化

聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化 目录 聚类分析 | MATLAB实现基于LP拉普拉斯映射的聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于DBSCAD密度聚类算法可视化,MATLAB程序。 使用带有KD树加速的dbscan_with_kdtree函数进行…

重排链表(C语言)

题目: 示例: 思路: 这题我们将使用栈解决这个问题,利用栈先进后出的特点,从链表的中间位置进行入栈,寻找链表的中间位置参考:删除链表的中间节点,之后从头开始进行连接。 本题使用…

Kali 软件管理

kali 更新 1. 查看发行版本 ┌──(root㉿kali)-[~] └─# lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2023.2 Codename: kali-rolling2. 查看内核版本 ┌──(root㉿kali)-[~] └─…

Android Studio升级到Android API 33版本后,XML布局输入没有提示

低版本的Android Studio升级到Android API 33版本后,XML布局输入没有提示。查一下我目前使用的Android Studio 是2021年发布,而Android API 33是2022年发布的,这是由低版本升级到高版本造成不兼容的问题。解决方法有两种: 第一种…

广州华锐互动:VR垃圾分类虚拟科普系统让学习过程更加丰富有趣

在我们的日常生活中,垃圾分类已成为一项重要的公民责任。然而,由于缺乏对垃圾分类的深入理解和相关知识,许多人在实践中往往感到困惑和挫败。为了解决这个问题,一种创新的解决方案应运而生:垃圾分类VR虚拟仿真教学系统…

计算机网络aaaaaaa

差错检测 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate) 11111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111…

【JavaWeb 专题】15个最经典的JavaWeb面试题

文章目录 HTTP长连接和短连接HTTP/1.1 与 HTTP/1.0 的区别可扩展性缓存带宽优化长连接消息传递Host 头域错误提示 AjaxAjax 的优势: JSP 和 servlet 有什么区别?定义区别 JSP 的9大内置对象及作用JSP 的 4 种作用域?session 和 cookie 有什么…

微信小程序报错: SyntaxError: Cannot use import statement outside a module

微信小程序数据绑定,导包出现了: “SyntaxError: Cannot use import statement outside a module” 排查问题步骤记录,共勉 1.出现问题代码: import {createStoreBindings} from "mobx-miniprogram-bindings"import {store} from …

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析 漏洞简介 Windows错误报告服务在提交错误报告前会创建wermgr.exe进程,而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程,从而以system权限执行代码。 影响版本 Windows10 1507 * Wind…