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

一 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.2 使用cl 编译源码

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

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

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

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

复制代码
https://www.msys2.org/

然后还是安装到 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源码

相关推荐
峥嵘life4 小时前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
ShineWinsu4 小时前
对于C++:IO流状态的详细解析
c++·面试·io·cin·io流状态·goodbit·failbit
Lzg_na5 小时前
constexpr的优势
c++
mqiqe6 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
gugucoding6 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
王维同学6 小时前
进程模块枚举、映像身份与线程启动地址关联
c++·windows·安全
hold?fish:palm7 小时前
24 回文链表
数据结构·c++·链表
举手7 小时前
Dispatcher模块剖析
linux·c++
Nebula_g7 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
for_ever_love__7 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习