Windows FFmpeg 开发环境搭建

FFmpeg 开发环境搭建

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

FFmpeg命令行环境搭建

  1. 下载编译好的ffmpeg
    在这里插入图片描述
    在搭建命令行环境时,下载ffmpeg-master-latest-win64-gpl.zip,将其解压后bin文件夹下得到3个可执行文件。在这里插入图片描述
    拷⻉可执⾏⽂件到C:\Windows(系统可执行文件搜索路径),在cmd中输入ffmpeg -version进行检查。
    在这里插入图片描述
  2. 使用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 镜像源并安装依赖

  1. 修改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/
    
  1. 安装依赖
    我选择的是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. 下载并编译源码

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器,它解决了 State 对状态变量更改的检测混乱的问题: State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

mysql常用函数五大类

mysql常用函数 1. 第一类:数值函数1.1 圆周率pi的值1.2 求绝对值1.3 返回数字的符号1.4 开平方,根号1.5 求两个数的余数1.6 截取正数部分1.7 向上取整数1.8 向下取整数1.9 四舍五入函数1.10 随机数函数1.11 数值左边补位函数1.12 数值右边补位函数1.13 次…

从PyTorch官方的一篇教程说开去(3.1 - GD 梯度下降法)

在openAI以前,我们所讨论的“人工智能”基本上都是“人工智障”,即时在某些方面表现得非常出色,击败了世界冠军,但最多算个某领域的“专才”而不是“通才”。 那么这些“智障”程序们,究竟是靠什么才能做到“专才”呢…

【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象 源码编译安装nginx时,执行./configure …… --with-http_ssl_module 命令安装https模块,需要用到openssl,由于机器缺少openssl库,报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…

Flink HA

目录 Flink HA集群规划 环境变量配置 masters配置 flink-conf.yaml配置 测试 Flink HA集群规划 FLink HA集群规划如下: IP地址主机名称Flink角色ZooKeeper角色192.168.128.111bigdata111masterQuorumPeerMain192.168.128.112bigdata112worker、masterQuorumPee…

MySQL(5)表的查询

目录 1.表的查询 1.表的查询: 1.1创建表: 语法: create table 表名( 字段 类型 约束, 字段 类型 约束, ... 字段 类型 约束 ); 1.2 单行数据全行插入: 🌰 表的字段都插入数据: insert into student values(100, 1000, 唐三藏, null); 1.3 多行数据 指定列插入:…

Go网络编程-RPC程序设计

gRPC 通信 RPC 介绍 RPC, Remote Procedure Call,远程过程调用。与 HTTP 一致,也是应用层协议。该协议的目标是实现:调用远程过程(方法、函数)就如调用本地方法一致。 如图所示: 说明: Servi…

STM32智能安防系统教程

目录 引言环境准备智能安防系统基础代码实现:实现智能安防系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:家庭与企业安防管理问题解决方案与优化收尾与总结 1. 引言 智能安防系统通过STM32…

webrtc QOS方法十三(视频渲染平滑)

一、背景介绍 视频渲染时间的确定需要考虑三方面的因素:网络抖动、网络延时、音视频同步 网络抖动:视频帧在网络上传输,会受到网络抖动的影响,不能收到立刻播放,需要进行适当的平滑 网络延时:一些报文在…

鱼眼相机变普通相机,利用Transform进行球面变换

Abstract 高分辨率广角鱼眼图像在自动驾驶等机器人应用中变得越来越重要。然而,使用普通的卷积神经网络或视觉变换器处理这类数据时会遇到问题,因为在将其投影到平面上的矩形网格时会引入投影和失真损失。为了解决这个问题,我们引入了HEAL-S…

雷达组网拼图3.0数据掌握和python解析处理

废话不多说,先展示雷达图 以反射率为例: 核对数据格式 Z_RADA_C_BABJ_20240705043615_P_DOR_ACHN_CREF_20240705_043000.bin数据分析认识 1. 组网产品分类:组网产品包括组网混合扫描反射率(HSR),组网组…

Qt-事件与信号

事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。 在使用界面组…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写,它是Android SDK 中的一个调试工具,允许开发者通过命令行界面与设备进行交互,执行各种操作,如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

鸿蒙语言基础类库:【@system.mediaquery (媒体查询)】

媒体查询 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.mediaquery]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import mediaquery from sy…

PySide在Qt Designer中使用QTableView 显示表格数据

在 PySide6 中,可以使用 Qt Model View 架构中的 QTableView 部件来显示和编辑表格数据。 1、创建ui文件 在Qt Designer中新建QMainWindow,命名为csvShow.ui。QMainWindow上有两个部件:tableview和btn_exit。 2、使用pyuic工具将ui文件转换为…

使用IDEA编写lua脚本并运行

下载lua https://github.com/rjpcomputing/luaforwindows/releases 是否创建桌面快捷方式:我们的目标是使用IDEA编写lua脚本,所以不需要勾选。后面需要的话,可以到安装目录下手动创建快捷方式 环境变量自动配置 安装后会自动配置好环境变量…

从零开始读RocketMq源码(五)Consumer消费Message流程解析

目录 前言 准备 拉取服务和重平衡服务启动 初识PullRequest 重平衡服务 对重平衡资源进行排序 MessageQueue消息队列集合来源 Consumer消费者集合数据来源 确实分配资源策略 执行分配策略 初始化ProcessQueue 初始化PullRequest 内存队列填充PullRequest 消息拉取…

TikTok用户必看:代理IP的优缺点深度剖析

在咱们这庞大的网络世界里,TikTok就像是夜空中最亮的星星,吸引着全世界的人们。它不仅仅是个让大家开心的地方,更是个能让不同地方的人互相了解、分享生活的神奇平台。但你有没有想过,要是能让这个连接更顺畅,让TikTok…

h5点击电话号跳转手机拨号

需要使用到h5的 <a>标签 我们首先在<head>标签中添加代码 <meta name"format-detection" content"telephoneyes"/>然后再想要的位置添加代码 <a href"tel:10086"> 点击拨打&#xff1a;10086 </a> 这样功能就实现…

【CSS in Depth 2 精译_019】3.2 CSS 的盒模型

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…