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开发实战:从零基础到短视频上线》一书。

相关推荐
cuijiecheng20181 小时前
音视频入门基础:RTP专题(21)——使用Wireshark分析海康网络摄像机RTSP的RTP流
网络·wireshark·音视频
cuijiecheng20181 小时前
音视频入门基础:MPEG2-PS专题(8)——使用Wireshark分析GB28181的PS流
测试工具·wireshark·音视频
kingmax542120082 小时前
深入解析:使用Python爬取Bilibili视频
开发语言·python·音视频
AJi4 小时前
Android音视频框架探索(二):Binder——系统服务的通信基础
android·ffmpeg·音视频开发
这个懒人5 小时前
H.264编码解析与C++实现详解
c++·ffmpeg·h264
用户96715113916721 天前
Rust 如何轻松实现 RTMP 流媒体推送?深入解析直播推流场景与解决方案
rust·ffmpeg
小小码农Come on1 天前
ffmpeg命令整理
ffmpeg
暮云星影1 天前
三、FFmpeg学习笔记
linux·ffmpeg
逼子格1 天前
五种音频器件综合对比——《器件手册--音频器件》
嵌入式硬件·音视频·硬件工程师·硬件测试·电子器件·硬件笔试真题·音频器件
EasyGBS1 天前
视频设备轨迹回放平台EasyCVR打造视频智能融合新平台,驱动智慧机场迈向数字新时代
网络·人工智能·安全·音视频