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源码

相关推荐
无敌岩雀5 分钟前
C++设计模式创建型模式———单例模式
c++·单例模式·设计模式
canyuemanyue6 分钟前
C++单例模式
开发语言·c++·单例模式
冬天的枫树11 分钟前
人工智能原理实验一:知识的表示与推理实验
c++·人工智能
秋恬意21 分钟前
Java 反射机制详解
java·开发语言
黑不溜秋的24 分钟前
C++ 模板专题 - 标签分派(Tag Dispatching)
开发语言·c++·算法
skywind33 分钟前
为什么 C 语言数组是从 0 开始计数的?
c语言·开发语言·网络·c++
ProcedureStone40 分钟前
【算法】排序算法总结
c++·算法·排序算法
尘浮生1 小时前
Java项目实战II基于Spring Boot的火锅店管理系统设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·微信小程序·旅游
wrx繁星点点1 小时前
桥接模式:解耦抽象与实现的利器
android·java·开发语言·jvm·spring cloud·intellij-idea·桥接模式
千里马-horse1 小时前
在OpenCL 中输出CLinfo信息
开发语言·c++·算法·opencl·1024程序员节