Windows FFmpeg 开发环境搭建
FFmpeg 开发环境搭建
- FFmpeg命令行环境搭建
- 使用FFmpeg官方编译的库
- Windows编译FFmpeg
- 1. 下载[msys2](https://www.msys2.org/#installation)
- 2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set
- 3. 修改pacman 镜像源并安装依赖
- 4. 下载并编译源码
FFmpeg命令行环境搭建
- 下载编译好的ffmpeg

在搭建命令行环境时,下载ffmpeg-master-latest-win64-gpl.zip,将其解压后bin文件夹下得到3个可执行文件。
拷⻉可执⾏⽂件到C:\Windows(系统可执行文件搜索路径),在cmd中输入ffmpeg -version进行检查。

- 使用FFmpeg官方编译的库(也可以)
- 使用静态库版本

- 使用动态库版本

ffmpeg-master-latest-win64-gpl-shared.zip版本运行时链接动态库使用,将可执行文件放到C:\Windows(系统可执行文件搜索路径),并将动态库拷贝到C:\Windows\SysWOW64(注:(WoW64 (Windows On Windows64 )是⼀个Windows操作系统的⼦系统,被设计⽤来处理许多在32-bit Windows和64-bit Windows之间的不同的问题,使得可以在64-bit Windows中运⾏32-bit程序。))

同样的,进行检查,那么这就是开发者版本。

使用FFmpeg官方编译的库
在上一part中得到的shared版本(dev版本),包含开发所需要的头文件和库文件,开发时引入include并链接lib即可。

使用C++开发时需注意,引入头文件时,声明extern,这是由于ffmpeg对C的支持性导致的。
extern "C" {// your ffmpeg header file
}
Windows编译FFmpeg
之所以需要编译,是因为想要客制化FFmpeg。
1. 下载msys2
2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set
MSYS2_PATH_TYPE=inherit取消(rem 为注释符号,去掉rem即可),这是为了将vs的环境继承给MSYS2。
3. 修改pacman 镜像源并安装依赖
- 修改pacman 镜像源
进入msys2安装目录
- 编辑 /etc/pacman.d/mirrorlist.mingw32 ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/ Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/ - 编辑 /etc/pacman.d/mirrorlist.mingw64 ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/ - 编辑 /etc/pacman.d/mirrorlist.msys ,在⽂件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
-
安装依赖
我选择的是mingw64 进行编译
打开mingw64
安装依赖pacman -S mingw-w64-x86_64-toolchain pacman -S git pacman -S make pacman -S automake pacman -S autoconf pacman -S perl pacman -S libtool pacman -S mingw-w64-i686-cmake pacman -S pkg-config pacman -S mingw-w64-x86_64-SDL2 pacman -S yasm
4. 下载并编译源码
相关文章:
Windows FFmpeg 开发环境搭建
FFmpeg 开发环境搭建 FFmpeg命令行环境搭建使用FFmpeg官方编译的库Windows编译FFmpeg1. 下载[msys2](https://www.msys2.org/#installation)2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set3. 修改pacman 镜像源并安装依赖4. 下载并编译源码 FFmpeg命令行环境…...
链路聚合概述
目录 技术背景: 基本概念: 链路聚合的工作模式: 简介: 1)Manual Load-balance(手动负载分担) 简介: 配置实施: 2)LACP(链路聚合控制协议ÿ…...
【链表】算法题(二) ----- 力扣/牛客
一、链表的回文结构 思路: 找到链表的中间节点,然后逆置链表的后半部分,再一一遍历链表的前半部分和后半部分,判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…...
合成复用原则
合成复用原则 (Composite Reuse Principle, CRP) 合成复用原则(Composite Reuse Principle, CRP),也被称为组合/聚合复用原则,是面向对象设计中的一条重要原则。它的核心思想是:优先使用对象组合/聚合,而不…...
安卓自带camera hal3 实例README.md翻译
最近,遇到一个这样的问题,临时了解下这个驱动实现架构和特点,翻译如下 V4L2相机HALv3 camera.v4l2库使用视频Linux 2(V4L2)接口实现了camera HAL v3。这使得它在理论上可以与各种设备配合使用,尽管V4L2的…...
ActiViz实战:ActiViz中的自己实现鼠标双击事件
文章目录 1、添加鼠标事件2、网上实现双击事件的方式3、增加双击的时间限制4、补充说明1、添加鼠标事件 已知在C#中观察者/命令模式会报错,正常添加鼠标事件如下: private void VtkInteractorStyleTest() {vtkInteractorStyle style = vtkInteractorStyle.New();style.LeftB…...
Linux-交换空间(Swap)管理
引入概念 在计算机中,硬盘的容量一般比内存大,内存(4GB 8GB 16GB 32GB 64GB…),硬盘(512GB 1T 2T…)。 冯诺依曼的现代计算机结构体系里面的存储器就是内存 内存是一种易失性存储器,…...
扫描某个网段下存活的IP:fping
前言: 之前用arp统计过某网段下的ip,但是有可能统计不全。网络管理平台又不允许登录。想要知道当前的ip占用情况,可以使用fping fping命令类似于ping,但比ping更强大。与ping需要等待某一主机连接超时或发回反馈信息不同&#x…...
【深度学习】PyTorch框架(3):优化与初始化
1.引言 在本文中,我们将探讨神经网络的优化与初始化技术。随着神经网络深度的增加,我们会遇到多种挑战。最关键的是确保网络中梯度流动的稳定性,否则可能会遭遇梯度消失或梯度爆炸的问题。因此,我们将深入探讨以下两个核心概念&a…...
Go-知识测试-子测试
Go-知识测试-子测试 1. 介绍2. 例子3. 子测试命名规则4. 选择性执行5. 子测试并发6. testing.T.Run7. testing.T.Parallel8. 子测试适用于单元测试9. 子测试适用于性能测试10. 总结10.1 启动子测试 Run10.2 启动并发测试 Parallel 建议先看:https://blog.csdn.net/a…...
.net core IConfiguration 读 appsettings.json 数据,举例
在.NET Core中,IConfiguration 接口是用来读取配置数据的,包括从 appsettings.json 文件中读取。下面是一个如何在使用.NET Core时通过 IConfiguration 读取 appsettings.json 数据的示例。 首先,假设你的 appsettings.json 文件内容如下&am…...
全球Windows机器蓝屏,作为量化人,我的检讨来了
昨天下午,微软给大家放了个假。Windows又双叒死机了。不过,这一次不是几台机器,而是全球大范围宕机。这一刻,大家都是“正蓝旗”。 蓝瓶的,效果好! 现在根本原因已经找到,绝大多数人的机器都已修…...
部署和运维
目录 1.Git1.1. Git指令中merge和rebase的区别1. Commit 记录2. 合并方式3. 冲突处理4. 使用场景选择建议 1.2. cherry-pick的使用如何使用 git cherry-pick例子处理冲突撤销 cherry-pick其他选项 结论 2. 部署1. Nginx的使用场景 编译打包1. webpack2. webpack打包优化1. 代码…...
微信小程序基本语法
官网 https://developers.weixin.qq.com/miniprogram/dev/framework/ 视频教程:尚硅谷微信小程序开发教程,2024最新微信小程序项目实战! 仿慕尚花坊项目源码:https://gitee.com/abcdfdewrw/flower-workshop 目录 一,初…...
测试用例的设计方法
等价类 等价类概念:在所有测试的数据中,具有某种共同特征的数据子集 边界值 边界值分析是对程序输入或输出的边界值进行测试的一种黑盒测试方法 边界值是作为等价类的补充,其主要区别是: 边界值测试设计不是从某一个等价类中…...
Android10.0 锁屏分析-KeyguardPatternView图案锁分析
首先一起看看下面这张图: 通过前面锁屏加载流程可以知道在KeyguardSecurityContainer中使用getSecurityView()根据不同的securityMode inflate出来,并添加到界面上的。 我们知道,Pattern锁所使用的layout是 R.layout.keyguard_pattern_view&a…...
Python 装饰器:函数的函数,代码的艺术
引言 在Python中,装饰器是一种强大的功能,允许程序员在不修改原函数源码的情况下增强或修改函数行为。装饰器本质上是一个接收函数作为参数的高阶函数,并返回一个新的函数或修改原函数的行为。这种机制极大地提高了代码的复用性、可读性和模…...
安全防御2
实验要求: 实验过程: 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换): 新建电信区: 新建移动区: 将对应接口划归到各自区域: 新建…...
C语言 ——— 打印水仙花数
目录 何为水仙花数 题目要求 代码实现 何为水仙花数 “水仙花数”是指一个n位数,其各位数字的n次方之和等于该数本身 如:153 1^3 5^3 3^3,则153就是一个“水仙花数” 题目要求 求出0~100000的所有“水仙花数”并输出 代码实现 #i…...
「Conda」在Linux系统中安装Conda环境管理器
在Linux系统中安装Conda环境管理器是一个相对简单的过程。 1. 准备工作 确保你的Linux系统已经更新到最新版本,并安装了基本的开发工具和库。打开终端,执行以下命令: sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential2. 安装Miniconda或An…...
【限时解密】SITS大会未公开议程泄露:下一代缓存协议Cache-LLMv2将于Q3强制接入HuggingFace生态?
更多请点击: https://intelliparadigm.com 第一章:大模型缓存策略优化:SITS大会 在2024年SITS(Scalable Intelligence & Trustworthy Systems)大会上,大模型推理缓存成为性能优化的核心议题。与传统We…...
别再只用Matplotlib画图了!用Python这3个库(SciPy, NumPy, Scikit-learn)给你的数据曲线做个‘美容’
Python数据平滑三剑客:用Savitzky-Golay、插值与滑动平均打造专业级图表 当你面对满是噪点的折线图时,是否想过这些锯齿状的波动正在掩盖数据的真实故事?就像摄影师不会直接发布未经修饰的RAW格式照片,数据科学家也需要掌握图表美…...
DecK工具介绍(Declarative Configuration for Kong网关的声明式配置工具,可同步配置,热更新运行中的网关)类似Terraform、导出Kong配置、导出配置
文章目录DecK 完全指南:Kong 网关的声明式配置工具一、什么是 decK?二、为什么需要 decK?三、decK 的核心思想四、decK 的工作原理五、decK 支持管理哪些对象?六、安装 decKLinux/macOSWindows验证安装七、连接 Kong八、导出 Kong…...
2025注安备考资料全套|视频+讲义+前导课,直接拿来就能学
大家好,最近很多备考注册安全工程师的同学都在找系统、完整的备考资料,要么是课程零散不全,要么是讲义和视频不配套,复习起来特别费劲。为了帮大家省去整理资料的时间,我把自己整理的2024-2025注安全套备考资料分享出来…...
【大白话说Java面试题 第43题】【JVM篇】第3题:GC分为哪两种?Young GC 和 Full GC有什么区别?
📌 PDF:大白话说Java面试题 — 02-JVM篇 第3题:GC分为哪两种?Young GC 和 Full GC有什么区别 📚 回答: 核心概念: JVM 的垃圾回收(GC)主要分为两种类型:You…...
解析2026年三星SDI化学价格趋势与一级代理市场定位优势
2026年三星SDI化学工程塑料价格预计整体稳中有升,涨幅在5%-8%区间,主要受高端产能集中、环保成本增加及新能源需求拉动影响。作为华南区域一级代理商,宏裕塑胶凭借源头直采与技术赋能双优势,可为下游企业提供稳定供应与15%-20%的采…...
从井下挖煤到改变高考:他用选择题终结“人情分“
1983年之前,中国的高考试卷上还没有选择题。那年春天,北京师范大学心理学教授郑日昌带着团队做了一项调查。他们从全国随机抽取了5套高考试卷,复印后分发给不同省市的评卷教师打分。结果出来后,所有人都傻眼了:同一份理…...
别再输密码了!手把手教你用SSH Key连接GitLab远程仓库(Windows/Mac通用)
告别密码输入:SSH Key连接GitLab全平台实战指南 每次推送代码都要反复输入密码?仓库权限报错让你抓狂?作为开发者,我们值得更优雅的代码管理方式。本文将带你解锁SSH Key这项被低估的生产力工具——只需5分钟配置,就能…...
CPAL脚本自动化测试 ———— 诊断安全解锁函数的参数配置与实战陷阱解析
1. CPAL脚本与安全解锁函数基础认知 第一次接触CPAL脚本中的安全解锁函数时,我盯着那堆参数配置整整懵了半小时。这就像拿到一把复杂的电子锁,明明知道每个按钮的功能,但就是找不到正确的组合方式。安全解锁函数本质上是车辆诊断中用于通过27…...
通过Taotoken管理API Key实现团队成员的访问控制与操作审计
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken管理API Key实现团队成员的访问控制与操作审计 在多人协作的开发场景中,如何安全、高效地管理大模型API的…...
