FFmpeg 4.3 音视频基础到工程应用-多路H265监控录放C++开发一 : 环境搭建1 vs2019 安装,

news2024/11/30 15:24:47

一 VS2019安装

https://pan.baidu.com/s/1CtMOM5Zhu-HcHcj611edOg#list/path=%2F
密码 p668

二 菜单运行vs2019编译控制台

如果我们要build 32 位的程序,则使用

 如果我们要build 64 位的ffmpeg,则使用 x64 Navite Tools Command Prompt for VS 2019

我们当前以32 位 为例,实现:

2.1 菜单运行 x86 Navite Tools Command Prompt for VS 2019

2.2 使用cl 编译源码

cl命令是‌Microsoft Visual C/C++编译器的一部分,用于编译C、C++和C++/CLI程序

2.2.1 打开 x86 Navite Tools Command Prompt for VS 2019 控制台

2.2.2 将msys64 解压后复制 到  D:\Ctool\msys64,本地使用的msys64 是免安装版,直接复制到你想要的目录下就好

然后测试发现不能使用,可能是版本太低了。

因此我们下载一个msys2的最新版本 msys2下载地址如下:

https://www.msys2.org/

然后还是安装到 D:\Ctool\msys64

2.2.3 然后回到 x86 Navite Tools Command Prompt for VS 2019 的控制窗口,然后进入到 D:\Ctool\msys64

2.2.4 然后执行命令 msys2_shell.cmd -mingw32

2.2.5  将 x86 Native Tools Command Prompt for VS 2019的运行环境共享给 mingw32控制台

然后再mingw32的控制台上要使用cl 命令 ,这时候再 mingw32 控制台上使用cl 命令,发现不能用,这是因为 mingw32 控制台 并没有共享 x86 Native Tools Command Prompt for VS 2019的运行环境,因此我们需要 将 x86 Native Tools Command Prompt for VS 2019的运行环境共享给 mingw32控制台。

改动方法:打开msys2_shell.cmd 脚本,使用文本打开


将 rem set MSYS2_PATH_TYPE=inherit 改为  set MSYS2_PATH_TYPE=inherit
意思是可以继承外部的环境变量

然后关掉 mingw32控制台,在x86 控制台上重新启动mingw32 命令:msys2_shell.cmd -mingw32

顺手改动一下 mingw32的 中文乱码,由于在vs2019中都是使用的GBK的编码,因此我们这里要将mingw32的编码也换成GBK的编码。

再次执行:

2.3  msys64 依赖的环境安装

pacman -S nasm

pacman -S yasm

pacman -S make

pacman -S cmake 

pacman -S diffutils

pacman -S pkg-config

pacman -S git

安装的汇编工具,编译x264 和ffmpeg 时会用到
pacman -S nasm

安装的汇编工具,编译x264 和ffmpeg 时会用到
pacman -S yasm

项目编译工具,必须要安装
pacman -S make cmake 

比较工具,ffmpeg configure 生成makefile 时用到
pacman -S diffutils

库配置工具,编译支持x264,x265时用到
pacman -S pkg-config

从版本库下载源码时用到
pacman -S git

在mingw32 控制台上执行第一个命令

由于国内网络的原因,链接不上

这时候可以改动一下网络源

先切换源,编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch

然后 执行 pacman -Sy 更新源

2.4 使用msys64 编译x264源码

2.4.1 将x264 源码放置在 D:\Ctool\msys64\home 下

2.4.2 在 mingw32控制台执行 

cd /home/x264

CC=cl ./configure --enable-shared

make -j16

make -j16 之后我们可以看到生成了 静态lib 和 动态dll

然后再make install ,可以看到 会将 x264的 lib ,bin,include 拷贝到 D:\Ctool\msys64\usr\local

至此,x264 编译完成

其中一个比较容易忽视的是x264.pc文件,实际上包含的信息是很多的:

那么这个有啥用呢?实际上在项目配置的时候只要找到这个 x264.pc就可以了。

2.5 使用vs2019的控制台编译fdk-aac源码

这里要注意的是fdk-aac的编译不需要用到 msys64,

2.5.1 将 fdk-aac 的源码放在D:\Ctool\msys64\home 下

2.5.2 使用  x86 Native Tools Command Prompt for VS 2019 控制台 开始build 

进入到当前目录

nmake -f makefile.vc
 

nmake -f makefile.vc prefix=.\install install

生成文件目录如下

最后将生成的这些文件都拷贝到 D:\Ctool\msys64\usr\local 下

最后检查一下 D:\Ctool\msys64\usr\local\bin

2.6  使用msys64 编译x264源码

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

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

相关文章

红日靶机(四)笔记

VulnStack-红日靶机四 概述 这个靶场环境包含了三台机器,一台web,两台window域机器。web服务是使用docker容器搭建的,所以就涉及到docker逃逸。而在获得立足点的过程中,我们要对三个docker容器分别测试,不能漏掉可以…

2012年国赛高教杯数学建模C题脑卒中发病环境因素分析及干预解题全过程文档及程序

2012年国赛高教杯数学建模 C题 脑卒中发病环境因素分析及干预 脑卒中(俗称脑中风)是目前威胁人类生命的严重疾病之一,它的发生是一个漫长的过程,一旦得病就很难逆转。这种疾病的诱发已经被证实与环境因素,包括气温和湿…

Ubuntu内存扩容

目录 vmware设置Ubuntu设置查看 读研后发现,Ubuntu的使用量直线上升,之前给配置了20g内存,安装了个ros后,没啥内存了。本文实现给Ubuntu扩容。 vmware设置 这里 我使用别人的截图来演示。 我在这里改成了60 Ubuntu设置 sudo a…

Linux基础-进程的超详细讲解(2)_进程的创建

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux基础-进程的超详细讲解(2)_进程的创建与状态 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论&#…

Python从入门到高手6.4节-字符串格式化详解

目录 6.4.1 理解格式化 6.4.2 使用f-string进行格式化 6.4.3 使用格式化符号进行格式化 6.4.4 使用format方法进行格式化 6.4.5 上山打老虎 6.4.1 理解格式化 同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部被清除。那么&#x…

数据湖新突破:Hudi让实时数据分析更高效!

开源数据湖对比 Hudi的使用收益 Hudi使用成效 Hudi内部机制 增量摄入与更新 Hudi使用一种混合日志存储模式(称为Copy-on-Write),可以同时处理基础数据文件(Parquet)和增量日志(HoodieLogFile)。以 MergeOnReadTable 的 upsert 操作为例,当有新数据到来时,Hudi会先将数据以行…

ubuntu 虚拟机将linux文件夹映射为windows网络位置

在使用虚拟机时可以选择将windows的文件夹设置为共享文件夹方便在虚拟机中访问windows中的文件,同理,也可以将linux的文件夹共享为一个网络文件夹,通过windows的添加一个网络位置功能,将linux的文件夹映射到windows本地,方便windows访问使用linux的文件夹 参照如下:https://blo…

CMA软件测评实验室如何申请|申请流程、筹备环节、材料清单、资源准备

CMA软件测评实验室资质的申请需要做好哪些准备工作?需要准备哪些材料?本文我们一起来梳理一下CMA软件测评实验室申请流程、准备环节、材料准备以及资源准备。 一、CMA软件测评实验室资质申请流程 1、申请资质认定的检验检测机构(以下简称申…

使用OpenRewrite将Java自动升级到Java 21

使用 OpenRewrite 可以实现将Java 项目自动升级到Java 21语法。 基于Maven项目的实现步骤 步骤非常简单&#xff0c; 具体如下&#xff1a; 在pom.xml 中添加如下插件&#xff1a; <project><build><plugins><plugin><groupId>org.openrewri…

第90届CMEF进行中,飞凌嵌入式引领智慧医疗新潮流

2024年10月12日&#xff0c;第90届中国国际医疗器械博览会 (CMEF)在深圳国际会展中心(宝安)开幕&#xff0c;来自全球各地的4000多家展商齐聚一堂&#xff0c;为全球健康产业带来探析前沿、洞见未来的医疗盛宴&#xff0c;飞凌嵌入式在13号馆D01展位隆重亮相。 飞凌嵌入式作为…

经典文献阅读之--GMMCalib(使用基于GMM的联合配准进行激光雷达传感器的外部标定)

0. 简介 现有的激光雷达标定框架主要使用迭代最近点(ICP)及其变体等非概率配准方法。由于它们的成对配准过程以及对初始化和参数化的敏感性&#xff0c;这些方法的结果存在偏差。这通常会导致校准过程中的不校准。概率配准方法通过专门模拟观测值的概率性质来弥补这些缺点。《…

上市公司社会责任报告信息数据(纳税金额、社会捐赠等) 2007-2023年

一、数据指标&#xff1a; 股票代码 统计截止日期 公告日期 所属省份 行业代码 行业名称 纳税总额 每股社会贡献值 社会捐赠额 是否经第三方机构审验 审验机构 是否参照GRI《可持续发展报告指南…

PostGIS:道路网密度分析

道路网密度是评价城市道路网是否合理的基本指标之一,用道路网密度指标来描述区域内的道路长度及平均分布情况,体现城市道路供给水平,其具有统计简单、直观、数据容易获取的优点。另外,通过对不同等级道路网密度的统计还能很好地反映出城市道路等级结构关系,对于方格形城市…

让Activity更加优雅地跳转

公众号「稀有猿诉」 原文链接 让Activity更加优雅地跳转 有过Android开发经验的小伙伴对startActivityForResult以及onActivityResult一定不陌生&#xff0c;正是这一对API让组件 的复用变成可能。今天就来学习一下如何在函数式的范式中驾驭Activity的跳转。 缘起 系…

git的基本操作 + 分支管理

一、基本操作 1. 修改文件 Git比其他的版本管理器设计得更加优秀&#xff0c;因为Git追踪并管理的是修改&#xff0c;而非文件。 修改一个文件&#xff0c;不管你是添加一行&#xff0c;或者删除一行&#xff0c;还是添加了又删除了&#xff0c;甚至你创建了一个新文件&…

《CS:GO》的标志性实验地图在 RTX GPU 神经网络中运行

研究人员让标志性的《CS:GO》地图《Dust 2》完全通过神经网络在单个 RTX 3090 GPU 上模拟运行。 虽然这些片段既令人印象深刻&#xff0c;又问题百出&#xff0c;但它们展示了生成式人工智能在模仿全 3D 游戏环境方面取得的令人敬佩的进展。 该项目的负责人之一埃洛伊-阿隆索&a…

了解CRM外贸管理软件及其应用指南

在全球化的商业环境中&#xff0c;外贸活动显得尤为重要&#xff0c;而有效地管理这些活动则成为企业取得成功的关键之一。CRM外贸管理软件作为一种专门针对外贸企业设计的客户关系管理工具&#xff0c;近年来受到越来越多国际贸易公司的青睐。其中&#xff0c;Zoho CRM作为市场…

Java项目:157 基于springboot技术的美食烹饪互动平台的设计与实现(含论文+说明文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本知识管理系统有管理员和用户两个角色 管理员权限操作的功能包括管理美食&#xff0c;对美食留言进行回复&#xff0c;管理美食知识信息&…

【QAMISRA】解决导入commands.json时报错问题

1、 文档目标 解决导入commands.json时报错“Could not obtain system-wide includes and defines”的问题。 2、 问题场景 客户导入commands.json时报错“Could not obtain system-wide includes and defines”。 3、软硬件环境 1、软件版本&#xff1a; QA-MISRA23.04 2、…

9.7 栅格图层符号化轮廓渲染

9.7 栅格图层符号化轮廓渲染_栅格构建轮廓-CSDN博客 目录 前言 轮廓 QGis设置为轮廓 二次开发代码实现轮廓 总结 前言 介绍栅格图层数据渲染之轮廓渲染说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 轮廓 以“3420C_2010_327_RGB_LATLNG.tif”数据…