共计 2334 个字符,预计需要花费 6 分钟才能阅读完成。
MacOS 配置 FFmpeg 开发环境
本文主要是在 Mac 系统下配置 C /C++ 的开发环境,用于学习开发 FFmpeg 使用。Mac 系统如何下载 Visual Studio Code、gcc 编译器和 FFmpeg 的编译与安装等不在本文的讨论。
FFmpeg 的编译安装,可以参考下面的文章。
配置 Visual Studio Code C/C++ 开发环境
VS Code 安装以下拓展
.vscode 目录下的配置文件
task.json 的配置
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc 生成活动文件 ",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/output/${fileBasenameNoExtension}"
],
"options": {"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": " 调试器生成的任务。"
}
],
"version": "2.0.0"
}
launch.json 的配置
{
"configurations": [
{
"name": "C/C++: gcc 生成和调试活动文件 ",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/output/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "C/C++: gcc 生成活动文件 "
}
],
"version": "2.0.0"
}
测试环境
hello.c
#include <stdio.h>
int main()
{printf("hello c.\n");
return 0;
}
点击 菜单栏的运行
、或者 右上角的运行按钮
,底下输出hello c.
就说明成功啦~
编写第一个 FFmpeg 程序
helloFFmpeg.c
#include <stdio.h>
#include <libavutil/avutil.h>
int main()
{av_log(NULL, AV_LOG_DEBUG, "HelloWord FFmpeg debug.\n");
av_log(NULL, AV_LOG_TRACE, "HelloWord FFmpeg trace.\n");
av_log(NULL, AV_LOG_INFO, "HelloWord FFmpeg.\n");
av_log(NULL, AV_LOG_VERBOSE, "HelloWord FFmpeg verbose.\n");
av_log(NULL, AV_LOG_FATAL, "HelloWord FFmpeg Fatal.\n");
av_log(NULL, AV_LOG_WARNING, "HelloWord FFmpeg WARNING.\n");
av_log(NULL, AV_LOG_ERROR, "HelloWord FFmpeg Error.\n");
return 0;
}
如无意外会报错,报错信息:
fatal error: 'libavutil/avutil.h' file not found
2 | #include <libavutil/avutil.h>
| ^~~~~~~~~~~~~~~~~~~~
1 error generated.
报错原因:
编译器没办法找到 <libavutil/avutil.h>
这个头文件,也就是编译的时候我们没把它写上去。
解决办法:
在 task.json
中加上 "-I/usr/local/ffmpeg5.1.6/include" 到 "-lm" 结束的内容即可。就是在执行编译命令的时候,加上头文件和 library 的查找地址。
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc 生成活动文件 ",
"command": "/usr/bin/gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-I/usr/local/ffmpeg5.1.6/include",
"-L/usr/local/ffmpeg5.1.6/lib",
"-lavformat",
"-lavdevice",
"-lavfilter",
"-lavcodec",
"-lavutil",
"-lswscale",
"-lswresample",
"-lpostproc",
"-lm",
"-o",
"${fileDirname}/output/${fileBasenameNoExtension}"
],
"options": {"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": " 调试器生成的任务。"
}
],
"version": "2.0.0"
}
Bingo,执行完毕。
有些没有输出的,不知道是咋肥事。难道是因为 Mac M 系列芯片的问题?挖个坑,改日再细细研究一下。
正文完
发表至: FFmpeg的学习
2024-11-05