首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年07月20日 10:20
《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文件列表。

然后单击属性页面右下角的确定按钮,完成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开发实战:从零基础到短视频上线》一书。

 

From:https://www.cnblogs.com/aqi00/p/18288635
本文地址: http://shuzixingkong.net/article/215
0评论
提交 加载更多评论
其他文章 渐变边框文字效果?CSS 轻松拿捏!
今天,有个群友问了我这么一个问题,如果不想切图,是否有办法实现带渐变边框的字体效果?如下所示: 本文,就将尝试一下,在 CSS 中,我们可以如何尽可能的实现这种渐变边框字体效果。 元素叠加 首先,比较容易想到的写法是通过元素叠加实现。 元素本身实现文字效果本身 通过元素的伪元素,配合 backgro
渐变边框文字效果?CSS 轻松拿捏! 渐变边框文字效果?CSS 轻松拿捏! 渐变边框文字效果?CSS 轻松拿捏!
Langchain 与 LlamaIndex:LLM 应用开发框架的比较与使用建议
Langchain 和 Llamaindex 是两种广泛使用的主流 LLM 应用开发框架。两者有什么不同?我们该如何使用?以下我根据各类资料和相关文档做了初步选型。 一、Langchain 1. 适用场景 (1)需要构建灵活、可扩展的通用应用程序。 (2)需要复杂的工作流程支持。 (3)需要复杂的交
GitHub Star 数量前 12 的开源无代码工具
相关文章:GitHub Star 数量前 15 的开源低代码项目 在本篇文章中,我们将探索 12 款在 GitHub 上星级排名前列的开源无代码工具。 每款工具都旨在简化和加速开发过程,但各自侧重于不同的应用场景。 从动态表单生成的 Formily,到高度可定制的 NocoBase 用于复杂业务系统
GitHub Star 数量前 12 的开源无代码工具 GitHub Star 数量前 12 的开源无代码工具 GitHub Star 数量前 12 的开源无代码工具
wails实现腾讯元器bot
简单记录工具的一个模块 后端 Api调用 登录 腾讯元器 后创建智能体,按自己的需求来创建,发布后要等等审核。 ​​ 等发布完成后点击调用api即可,这里可以看到user_id​, assistant_id​,token​参数 ​​ 使用github.com/chenmingyong0423/go-
wails实现腾讯元器bot wails实现腾讯元器bot wails实现腾讯元器bot
FOG Project库存管理系统命令注入漏洞
FOG是一款克隆/成像/救援套件/库存管理系统。在版本低于1.5.10.34的情况下,FOG中的packages/web/lib/fog/reportmaker.class.php文件受到命令注入漏洞的影响,该漏洞存在于/fog/management/export.php的文件名参数中。此漏洞已在版本1.5.10.34中得到修复。
FOG Project库存管理系统命令注入漏洞 FOG Project库存管理系统命令注入漏洞 FOG Project库存管理系统命令注入漏洞
一种优秀的虚拟机内存架构 - AQ
源链接:https://www.axa6.com/zh/an-excellent-virtual-machine-memory-architecture 简介 虚拟机内存架构直接影响虚拟机的性能和占用。设计一个优秀的架构可以有效提升性能和效率。 本文将介绍AQ虚拟机使用的内存架构,以及AQ虚拟机内存
[rCore学习笔记 016]实现应用程序
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 设计方法 了解了特权级机制,实际上如果要设计一个应用程序就需要保证它符合U模式的要求,不要去访问S模式下的
[rCore学习笔记 016]实现应用程序
Python按条件筛选、剔除表格数据并绘制剔除前后的直方图
本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法~
Python按条件筛选、剔除表格数据并绘制剔除前后的直方图 Python按条件筛选、剔除表格数据并绘制剔除前后的直方图