FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成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文件列表。

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

相关推荐
RockWang.5 小时前
【FFMPEG】Install FFmpeg CUDA gltransition in Ubuntu
linux·ubuntu·ffmpeg
python死忠30167 小时前
【爬虫软件】批量采集短视频博主的主页作品
爬虫·音视频
码狂☆15 小时前
本地电脑交叉编译ffmpeg 到 windows on arm64
windows·ffmpeg·arm
美丽的欣情19 小时前
使用FFmpeg的AVFilter转换YUV到RGB
ffmpeg
simple_whu19 小时前
使用ffmpeg的c++库读取视频流和其中的SEI数据
开发语言·c++·ffmpeg
爱研究的小牛19 小时前
Magisto——AI分析视频素材,自动生成剪辑、拼接和添加音乐的成品视频
人工智能·深度学习·aigc·音视频
2401_8600773520 小时前
谁还只会用OBS?多场景录制试试这四款!
电脑·音视频
A_ugust__1 天前
vue项目中利用后端接口返回的视频地址获取第一帧作为数据封面展示
前端·vue.js·音视频
UtopiaYouth1 天前
OpenCV图像与视频分析笔记 — 视频部分
人工智能·笔记·opencv·计算机视觉·音视频
晨同学03271 天前
【音视频】播放音视频时发生了什么? & 视频的编解码 & H264是什么? & MP4是什么?
音视频·h.264