title: 音视频系列二:Visual Studio2019集成ffmpeg之hello world categories:[ffmpeg] tags:[音视频编程] date: 2021/11/25
作者:hackett
微信公众号:加班猿
一、下载安装Visual Studio
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jowcsQq4-1637833527344)(https://gitee.com/img/202111251630116.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-If0CaZlF-1637833570448)(https://gitee.com/coderhackett/cloudimg/blob/master/img/202111251631548.png)]
下载地址为:https://visualstudio.microsoft.com/zh-hans/downloads/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeBxepaj-1637829140192)(https://gitee.com/img/202111251630517.png)]
然后进行安装,安装时选择C/C++开发的选项进行安装,安装时选择如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0LbJgHcw-1637829140194)(https://gitee.com/img/202111251630116.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kgjvaTod-1637829140196)(https://gitee.com/img/202111251631036.png)]
选好就,点击下一步,等待安装就OK了。
二、下载ffmpeg开发包
GitHub下载地址:https://github.com/BtbN/FFmpeg-Builds/releases
下载最新的带share版本的,就是已经编译好了的,不用自己再编译 ffmpeg-n4.4.1-2-gcc33e73618-win64-gpl-shared-4.4.zip
├─bin
├─doc
├─include
│ ├─libavcodec
│ ├─libavdevice
│ ├─libavfilter
│ ├─libavformat
│ ├─libavutil
│ ├─libpostproc
│ ├─libswresample
│ └─libswscale
├─lib
└─presets
三、创建项目目录
├─bin
├─include
├─lib
└─src
四、打开Visual Studio 2019创建项目
将项目创建到src目录下面
文件->新建->项目 选择C++空项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOZnQ8r0-1637829140197)(https://gitee.com/img/202111251631734.png)]
项目位置选择到src,然后创建项目。注意:将项目解决方案和项目放在同一目录中前面的勾要选上,不然默认会多创建一层目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kltglRl3-1637829140197)(https://gitee.com/img/202111251631597.png)]
五、开发环境配置
选中项目右键选择属性:
-
C/C+±>常规->附件包含目录 【$(ProjectDir)…\include】 -
链接器->常规->附加库目录 【$(ProjectDir)…\lib】 -
链接器->输入->附加依赖项 avcodec.lib avformat.lib avutil.lib avdevice.lib avfilter.lib postproc.lib swresample.lib swscale.lib -
项目->配置管理器选择x64
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NjrJLJy-1637829140198)(https://gitee.com/img/202111251631807.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jXfnDo2v-1637829140199)(https://gitee.com/img/202111251631291.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pREcNIfE-1637829140201)(https://gitee.com/img/202111251631548.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VxDbkol7-1637829140202)(https://gitee.com/img/202111251632962.png)]
六、创建hello world程序
#include<iostream>
using namespace std;
extern "C" {//包含C头文件
#include "libavutil/log.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
#include "libavutil/avutil.h"
#include "libavutil/ffversion.h"
#include "libswresample/swresample.h"
#include "libswscale/swscale.h"
#include "libpostproc/postprocess.h"
};
int main(int argc, char* argv[]) {
av_log_set_level(AV_LOG_DEBUG); //设置日志级别
av_log(NULL, AV_LOG_DEBUG, "hello world log\n"); //打印日志
unsigned int codecVer = avcodec_version();
int ver_major, ver_minor, ver_micro;
ver_major = (codecVer >> 16) & 0xff;
ver_minor = (codecVer >> 8) & 0xff;
ver_micro = (codecVer) & 0xff;
printf("Current ffmpeg version is: %s ,avcodec version is: %d=%d.%d.%d\n", FFMPEG_VERSION, codecVer, ver_major, ver_minor, ver_micro);
system("pause"); //窗口等待
return 0;
}
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0LNdnPr-1637829140202)(https://gitee.com/img/202111251632126.png)]
补充:
如果在运行代码的时候,IDE提示,***声明已被否决,这时可以通过修改项目的配置方式来解决:
-
C/C++ ->常规-> SDL检查关掉 -
C/C++ ->代码生成-> 多线程调试(/MTD)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u0wgM5Nb-1637829140203)(https://gitee.com/img/202111251632572.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h4V6L6dZ-1637829140203)(https://gitee.com/img/202111251632596.png)]
如果你觉得文章还不错,可以给个"三连"
我是加班猿,我们下期见
|