音视频开发五:visual studio集成使用FFmpeg

1. 下载ffmpeg编译好的Windows版本

ffmpeg 官网 -> download -> 选择Windows系统 -> 选择gyan.dev版本-> shared版本

在这里插入图片描述

在Windows系统上,Gyan.dev和BtbN都提供了FFmpeg的预编译版本。Gyan.dev通常使用MSVC编译器,而BtbN使用MinGW编译器。因此,Gyan.dev的版本可能会更符合Windows标准,而BtbN的版本可能会更加开放和跨平台。

选择 shared版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m66NA3E5-1680012961479)(D:\Users\11154214\AppData\Roaming\Typora\typora-user-images\image-20230313223028435.png)]

各个版本的区别介绍

  • essential就是简版,只包含ffmpeg.exe、ffplay.exe、ffprobe.exe
  • Full版适用于终端用户,因为它包含了所有的可执行文件和静态库,用户可以从命令行调用FFmpeg的工具来进行视频处理
  • Full-Shared版仅包含共享库和工具,不包含可执行文件和静态库,这使得开发者可以使用FFmpeg的功能实现自己的应用程序或集成FFmpeg到自己的项目中。

2. 设置环境变量

下载后解压,文件目录如下:

在这里插入图片描述

设置一下将bin目录设置到环境变量中去。配置环境变量不明白自行搜索。

接下来在打开命令终端
输入 ffmpeg -version。

在这里插入图片描述

这样就表示成功。

3. visual studio2022 配置FFmpeg环境

1. 设置附加包含目录

首先右键点击创建的项目FFmpegTest,选择属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lcPAQxdS-1680012961481)(D:\Users\11154214\AppData\Roaming\Typora\typora-user-images\image-20230314093940736.png)]

在配置属性中选择C/C++目录中常规属性的附加包含目录添加ffumpeg的头文件目录。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLqnHGFv-1680012961483)(D:\Users\11154214\AppData\Roaming\Typora\typora-user-images\image-20230314094324989.png)]

2. 设置附加库目录

在配置属性中选择链接器中常规属性附加库目录添加ffmpeg的lib路径。

在这里插入图片描述

3.设置附加依赖项

在链接器输入属性中附加依赖项添加具体的依赖库名称

在这里插入图片描述

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib

4. 配置调试环境

上述环境基本就设置好了,如果在使用ffmpeg库编译代码的时候,提示没有找到xx.dll库。

原因: 由于没有找到ffmpeg动态库所在的目录。

解决: 设置调试时的环境变量,把ffmpeg动态库的路径添加到环境变量中。

配置属性-> 调试 -> 环境- >添加路径

在这里插入图片描述

4. 测试是否配置成功

1. 编写代码

#include <iostream>

extern "C" {
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
}

int main()
{
    std::cout << "Hello World!\n";
    printf("%s\n", avcodec_configuration());


}

使用extern “C” 。"extern C"是一种语言特性,用于在C++代码中引用C语言函数。因为ffmpeg是用C语言编写的,告诉链接器在链接的时候用C函数规范来链接,确保C++代码和FFmpeg使用相同的函数名(主要原因是C++和C程序编译完成后在目标代码中命名规则不同)。这样,当我们在编译和链接时使用C++编译器时,编译器将关闭函数名称修饰,从而让我们能够直接使用FFmpeg的C函数

2.执行结果

在这里插入图片描述

这样就配置成功了。

猜你喜欢

转载自blog.csdn.net/qq_38056514/article/details/129826552