FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg

简介: 在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。

​《FFmpeg开发实战:从零基础到短视频上线》一书的“第11章 FFmpeg的桌面开发”介绍了如何在Windows环境对Qt结合FFmpeg实现桌面程序,那么Windows系统通过Visual Studio开发桌面程序也是很常见的,下面就介绍如何在Visual Studio的C++工程中集成FFmpeg库和SDL2库。

首先按照《FFmpeg开发实战:从零基础到短视频上线》一书第1章“1.3 Windows系统安装FFmpeg”的介绍,把已编译好的FFmpeg库安装到个人电脑的E:\msys64\usr\local\ffmpeg(该安装目录可替换为自己电脑实际的安装路径,注意一旦更换FFmpeg的安装目录,后面所有的FFmpeg安装路径配置也要跟着修改)。
再打开事先安装的Visual Studio 2022,创建一个基于C++的控制台应用项目。等待Visual Studio打开新项目,在主界面右侧的解决方案资源管理器窗口中右击项目名称,选择右键菜单底部的属性选项。在弹出的属性页面中,依次选择左侧的列表项:配置属性→VC++目录,并在属性页面右侧的列表项中依次选择:常规→外部包含目录→编辑。在弹出的外部包含目录窗口中添加下列头文件目录(具体路径根据自己电脑上的ffmpeg安装路径调整):

E:\msys64\usr\local\ffmpeg\include
E:\msys64\usr\local\sdl2\include

单击外部包含目录窗口右下角的确定按钮,确认添加上面两个头文件目录。
接着依次选择属性页面左侧的列表项:配置属性→链接器→常规,并在页面右侧的列表项中依次选择:附加库目录→编辑。在弹出的附加库目录窗口中添加下列库文件目录(具体路径根据自己电脑上的sdl2安装路径调整):

E:\msys64\usr\local\ffmpeg\lib
E:\msys64\usr\local\sdl2\lib

单击附加库目录窗口右下角的确定按钮,确认添加上面两个库文件目录。
接着依次选择属性页面左侧的列表项:配置属性→链接器→输入,并在页面右侧的列表项中依次选择:附加依赖项→编辑。在弹出的附加依赖项窗口中添加下列lib文件列表:

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

添加了lib文件配置的附加依赖项窗口如下图所示。单击附加依赖项窗口右下角的确定按钮,确认添加上述的lib文件列表。

vs2022_lib.png

然后单击属性页面右下角的确定按钮,完成FFmpeg与SDL2的依赖库导入设置。
回到Visual Studio 2022的主界面,在左侧的代码编辑窗口中填写下面的FFmpeg测试代码,主要是调用FFmpeg框架的av_log函数来输出“Hello World”。

extern "C"
{
#include <libavutil/avutil.h>
}

int main(int argc, char** argv) {
    av_log(NULL, AV_LOG_INFO, "Hello World\n");
    return 0;
}

保存测试代码后,依次选择顶部菜单:调试→开始执行。Visual Studio就开始编译测试程序,编译完毕弹出控制台窗口输出了一行日志“Hello World”,说明成功在Visual Studio的C++工程中集成了FFmpeg库。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

目录
相关文章
|
4月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
951 2
|
7月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
1076 3
|
4月前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
512 2
|
5月前
|
并行计算 C++ Windows
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
1551 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
413 13
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
499 1
WK
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
859 1
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
597 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库

热门文章

最新文章