音视频技术应用(2)-ffmpeg项目创建和源码pdb调试设置
1. 拷贝库文件和头文件
在任意位置新建一个空目录,分别创建以下几个文件夹:
bin: 用于存放刚才编译好的动态链接库文件。
include: 用于存放头文件。
lib: 用于存放后缀名为.lib的库文件,实际上只是库的路径。
src: 用于存放测试的源码。
tools: 用于存放ffmpeg 的源码,方便将来调试的时候能够进入到ffmpeg的源码。
在bin目录下新建一个x86目录,将刚才编译好的ffmpeg动态链接库,fdk-aac的动态链接库,x264, x265的动态链接库 全部拷贝到当前目录下:
在lib 目录下新建一个x86目录,将 ffmpeg 编译生成的库文件(以.lib结尾) 放置到该目录下:
拷贝ffmepg的头文件到 include 目录下:
将ffmpeg4.3的源码放置到tools目录下:
2. 新建一个空项目
打开VS2019, 选择“创建新项目”
点击“创建控制台应用”,然后点击下一步:
位置选择为我们刚才创建的源码目录,比如我刚才创建的位置就在 “D:\code\src”, 项目名称命名为:first_ffmpeg, 勾选“将解决方案和项目放在同一目录中”:
点击“创建”,就完成了新项目的创建。
3. 配置项目属性
右击“first_ffmpeg”,选择“属性”:
然后选择“C/C++”, 点击右侧的“附加包含目录”,点击右侧的下拉箭头,点击“编辑”:
输入include 目录的相对路径:..\..\include
然后点击“确定”。
头文件路径添加好了,接下来我们来添加库文件的路径:
依次选择“链接器”-》“附加库目录”-》然后输入 ..\..\lib\x86
接下来配置输出目录。这个输出目录指的是编译生成的.exe文件和pdb调试文件,我们把这两种类型的文件放置到同一个目录下。
选择配置属性-“常规”-输出目录,将输出目录修改为:..\..\bin\x86
接下来配置调试目录,我们把调试目录的地址修改为跟上面的工作目录一致:
选择“配置属性”-“调试”-“工作目录”, 将工作目录修改为 ..\..\bin\x86
4. 编写一份测试code, 检查ffmpeg是否可以顺利编译通过:
修改 first_ffmpeg.cpp 为如下代码:
#include <iostream> using namespace std; extern "C" { // 指定函数是C语言函数,以C语言的方式去编译 #include <libavcodec/avcodec.h> } // 以预处理指令的方式导入库 #pragma comment(lib, "avcodec.lib") int main() { cout << "Hello World!" << endl;; cout << avcodec_configuration() << endl; }
点击顶部的 “本地Windows调试器”按钮编译运行,如果能够在控制台正常打印出avcodec的相关配置信息,则说明ffmpeg已经可以顺利编译成功了。
接下来测试下是否可以进入到ffmpeg当中的源码:
在第15行添加断点,点击F5 开始调试,然后点击F11, 尝试进入到avcodec_configuration()函数当中,如果能顺利进入到该函数当中,则说明源码也关联成功了。
注:第10行我们采用的是预处理的方式导入库,如果不想使用这种方式,可以右击“属性”-“链接器”-“附加依赖项”,点击右侧的下拉箭头,点“编辑” 输入avcodec.lib
使用这种方式也可以顺利导入库。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探