【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )

250 篇文章 187 订阅



Visual Studio 2019 社区版 CMakeList 开发环境安装


配置该环境主要是配合 Android 进行开发 , 目前 Android 中调用 C/C++ 代码使用的都是 CMake 构建项目 , 因此在次数 VS 中要使用 CMake 构建 FFMPEG 的开发环境 ;

先搭建基础的开发环境 , 然后在配置 FFMPEG 源码 ;

基础开发环境搭建 , 博客地址 : https://hanshuliang.blog.csdn.net/article/details/98175395




创建 FFMPEG 配置项目


1.创建项目 : 打开 Visual Studio 后 , 点击 “创建新项目” , 开始创建 CMake 项目 ;
在这里插入图片描述

2.选择项目类型 : 选择 CMake 项目类型 ;

在这里插入图片描述
3.输入项目名称 , 选择项目位置 , 解决方案命名使用系统自动生成的 , 点击 “创建” 按钮 , 创建新项目 ;
在这里插入图片描述

4.进入代码界面后 , 会自动生成解决方案 , 点击运行测试项目是否完善 ;

在这里插入图片描述




FFMPEG 开发包下载


1.FFMPEG 官网地址 : http://ffmpeg.org/ , 在主页中点击 “Download” 下载按钮 , 进入下载界面 ;
在这里插入图片描述

2.下载页面链接 ( 默认 Linux ) : http://ffmpeg.org/download.html
在下面页面中默认是 Linux 的下载项 , 由于要在 Windows 系统中的 Visual Studio 中搭建开发环境 , 这里我们选择 Windows 下载项, 这里选择 Windows 下载项;

在这里插入图片描述

3.Windows 下载页 : http://ffmpeg.org/download.html#build-windows
在 Windows 下载页面中 , 点击 “Windows Builds” 链接 , 进入 Windows 开发包下载页面 ;

在这里插入图片描述

4.FFMPEG Windows 开发包地址 : https://ffmpeg.zeranoe.com/builds/
在该界面中 , “Version” 选项下选择要下载的 FFMPEG 版本 , 可以选择一个稳定版本 , 也可以选择最新版本 , 这里选择最新的 2019年8月13日版本 , “Architecture” 下选择要下载的架构 , 这里选择 “Windows 64-bit” , “Linking” 选项下的三个 ( Static , Shared , Dev ) 都下载下来 ;

下载的文件为 :
ffmpeg-20190813-8cd96e1-win64-static.zip : 包含有 FFMPEG 文档 ;
ffmpeg-20190813-8cd96e1-win64-shared.zip : 包含 .dll 动态链接库 ;
ffmpeg-20190813-8cd96e1-win64-dev.zip : 包含相关头文件和 lib 静态链接库 ;

在这里插入图片描述




FFMPEG 头文件 静态链接库 ( .lib ) 动态链接库 ( .dll ) 文件处理


1.头文件和静态链接库 ( .lib ) 解压拷贝

① 解压 ffmpeg-20190813-8cd96e1-win64-dev.zip 文件 , 如下 :
在这里插入图片描述

② 将其中的 lib 和 include 目录整体拷贝到 CMake 项目的源码目录下 ;

在这里插入图片描述

2.动态链接库 ( .dll ) 解压拷贝

① 将 ffmpeg-20190813-8cd96e1-win64-shared.zip 解压 , 在 ffmpeg-20190813-8cd96e1-win64-shared/bin 目录下有 8 个 .dll 文件 , 内容如下 :
在这里插入图片描述

② 将其拷贝到 C:\Windows\System32 目录下 , 如下图所示 :

在这里插入图片描述

下面是从 FFMPEG 官网下载的三个压缩包 , 及其解压后的目录截图 :

在这里插入图片描述




Visual Studio Cmake 项目配置 FFMPEG


执行该步骤前确保上个步骤执行完毕 ;
① 拷贝头文件和静态链接库到项目源码目录中 ;
② 拷贝 8 个动态链接库 ( .dll ) 到 C:\Windows\System32 中 ;

CMakeList.txt 配置 :

  • 1.要配置的文件 : 此处要配置的 CMake 配置文件是源码路径下的 CMakeList.txt 配置文件 , 不是项目根目录下的配置文件 ;
  • 2.配置头文件目录 : 之前拷贝的 include 目录到源码目录下 , include 目录与该配置文件在同一个目录 , 因此这里使用 “include” 相对路径配置即可 ;
    • 相对路径方案配置 : 直接配置 “include” 路径 ;
    • 绝对路径方案配置 : 这里也可以配置其绝对路径 , “A:/develop/workspace/VS/002_FFMPEG/002_FFMPEG/include” ;
    • 注意点 : 配置路径中不要使用拷贝出来的 “” , 需要修改成 “/” 作为文件分隔符 ;
#配置头文件目录 : 如果想要在写代码时调用 FFMPEG 中的函数 , 必须设置头文件的查找位置
include_directories("include")
  • 3.配置库文件目录 : 这里也配置相对路径 “lib” ;
#配置库文件目录 : 设置 lib 库文件查找目录 , 相当于 Java 中的 jar 包
link_directories("lib")
  • 4.配置 8 个 FFMPEG 库链接 : 使用 target_link_libraries 配置 FFMPEG 的8个动态链接库 , 注意该配置必须在解决方案配置之后 , 要先配置生成 002_FFMPEG 项目 , 然后配置该配置项 ;
#设置编译链接的 FFMPEG 库 , 需要把 FFMPEG 的库都配置到下面
#注意 使用 002_FFMPEG 的前提是 , 该项目必须在 002_FFMPEG 配置后面进行配置
target_link_libraries(
	002_FFMPEG	#本项目的解决方案名称
	avcodec		#音视频编码核心库 , 用于音视频或图片编解码
	avdevice	#硬件采集 , 加速 , 显示 库
	avfilter	#音视频滤波器
	avformat	#音视频封装格式生成或解析 
	avutil		#该库中封装了一些公共的工具函数
	postproc	#封装了同步, 时间计算的简单算法
	swresample	#音视频编解码格式预设
	swscale		#原始视频格式转换库
)
  • 5.完整的 CMakeList.txt 配置文件 :
# CMakeList.txt: 002_FFMPEG 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)

#配置头文件目录 : 如果想要在写代码时调用 FFMPEG 中的函数 , 必须设置头文件的查找位置
include_directories("include")

#配置库文件目录 : 设置 lib 库文件查找目录 , 相当于 Java 中的 jar 包
link_directories("lib")

# 将源代码添加到此项目的可执行文件。
add_executable (002_FFMPEG "002_FFMPEG.cpp" "002_FFMPEG.h")

#设置编译链接的 FFMPEG 库 , 需要把 FFMPEG 的库都配置到下面
#注意 使用 002_FFMPEG 的前提是 , 该项目必须在 002_FFMPEG 配置后面进行配置
target_link_libraries(
	002_FFMPEG	#本项目的解决方案名称
	avcodec		#音视频编码核心库 , 用于音视频或图片编解码
	avdevice	#硬件采集 , 加速 , 显示 库
	avfilter	#音视频滤波器
	avformat	#音视频封装格式生成或解析 
	avutil		#该库中封装了一些公共的工具函数
	postproc	#封装了同步, 时间计算的简单算法
	swresample	#音视频编解码格式预设
	swscale		#原始视频格式转换库
)

# TODO: 如有需要,请添加测试并安装目标。




包含 avcodec 库并使用


包含 avcodec 库并使用 : 该库是 FFMPEG 的核心库 , 8 个动态链接库之一 ;

  • 1.包含 avcodec 库 头文件 : 注意 C/C++ 兼容 , 该库是 C 语言库 , 需要在 extern “C”{} 中包含该库 ;
extern "C" {
	#include <libavcodec/avcodec.h>
}
  • 2.打印 avcodec 版本号 : 调用 av_version_info() 方法 , 即可获取 avcodec 版本号 ;
	//打印 avcodec 版本号
	cout << av_version_info() << endl;
  • 3.完整代码 :
// 002_FFMPEG.cpp: 定义应用程序的入口点。
//

#include "002_FFMPEG.h"

using namespace std;

extern "C" {
	#include <libavcodec/avcodec.h>
}

int main()
{
	cout << "Hello FFMPEG。" << endl;

	//打印 avcodec 版本号
	cout << av_version_info() << endl;

	return 0;
}

  • 4.执行结果 :
Hello FFMPEG。
N-94530-g8cd96e13ee

在这里插入图片描述


要在VS2022中配置FFmpeg,可以按照以下步骤进行操作: 1. 下载FFmpeg库文件:前往FFmpeg官方网站(https://ffmpeg.org)下载最新的静态库文件。确保选择与您的操作系统和平台匹配的版本。 2. 解压缩库文件:将下载的库文件解压缩到一个方便访问的位置,例如C:\ffmpeg。 3. 在VS2022中创建新项目:打开VS2022并创建一个新的C++项目。选择适当的项目类型和设置。 4. 配置项目属性:在“解决方案资源管理器”中右键单击项目,选择“属性”选项。在属性窗口中,找到“VC++目录”选项,并点击展开。点击“包含目录”一栏,添加FFmpeg库文件的头文件目录,例如C:\ffmpeg\include。 5. 添加库文件:继续在属性窗口中,找到“链接器”选项,并点击展开。点击“输入”一栏,在“附加依赖项”中添加FFmpeg库文件的链接库,例如C:\ffmpeg\lib\avcodec.lib、C:\ffmpeg\lib\avformat.lib等。 6. 设置环境变量:在VS2022中,打开“工具”菜单,选择“选项”选项。在弹出的窗口中,展开“项目和解决方案”选项,在“生成事件”下的“预生成事件”中,添加以下命令: ``` setx PATH "%PATH%;C:\ffmpeg\bin" ``` 这将在每次生成项目之前将FFmpeg的可执行文件路径添加到系统的环境变量中。 7. 测试配置:编写一个简单的程序,使用FFmpeg库进行音视频处理,并尝试编译和运行它,以确保配置正确。 请注意,以上步骤仅适用于在Windows上使用VS2022进行配置。如果您使用的是其他操作系统或不同的集成开发环境,请根据实际情况进行相应的调整。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值