在上篇文章Visual Studio 开发(一):安装配置Visual Studio Code 中,我们讲了一下如何配置VS CODE,来编写和调试C的代码。如果你已经使用VS Code回顾和复习好C相关的知识了,并且有想深入学习FFmpeg的方法,那么可以看看这篇文章,相信对你会很有帮助。

一、下载安装Visual Studio

下载地址为:https://visualstudio.microsoft.com/zh-hans/downloads/

然后进行安装,安装时选择C/C++开发的选项进行安装,安装时选择如下:

选好就,点击下一步,等待安装就OK了。

二、创建项目并配置FFmpeg开发环境

在文件中新建一个项目,自行起一个项目名称,例如FFmpegTest,下面是我创建项目的目录结构:

里面的代码是一个Hello World的代码,并说明了如何运行起来这个项目(针对新手)。

尝试运行一下,如果运行没问题,那么我们的Visual Studio 2017 就说明安装的没问题了,下面开始配置FFmpeg的开发环境了。

1. 下载FFmpeg的源码、库、链接文件

首先需要去FFmpeg官网下载相应的内容:

下载地址为:https://ffmpeg.zeranoe.com/builds/,这里有三种类型的:static、shared、dev。

先解释一下这三种类型的用处:

  • static:打包好的文件,可以认为是FFmpeg的release版本,提供的是ffmpeg、ffplay、ffprobe三个命令行工具。(只学习命令行的同学可以将此配置到环境变量上)
  • shared:这个包包含static的文件,但是相比较多了链接文件DLL,这些DLL文件在后面开发环境配置配置中会用到。
  • dev:这个是纯开发版本的文件,不包含ffmpeg、ffplay、ffprobe这些命令行工具,但是包含我们开发时使用的头文件(位于include目录),及liib文件(位于lib目录),以及example文件(用于学习和使用)。

从上面的类型说明中,可以知道,我们需要下载的是shared和dev两个文件,为了减少使用时的问题,建议下载32位的文件

附:本人以及将下载好的上传到:https://github.com/renhui/Thinking-in-AV/tree/master/FFmpeg/environment方便浏览和查阅。

然后将这些文件拷贝到项目中,具体如下:

  1. 将shared的DLL文件拷贝到项目中。
  2. 将dev的include和lib文件夹一起拷贝到目录中。

2. 配置FFmpeg开发环境

添加附加包含目录指向拷贝的include文件,如下:

添加附加库目录,如下:

添加附加依赖项,内容为

avcodec.lib; avformat.lib; avutil.lib; avdevice.lib; avfilter.lib;postproc.lib;swresample.lib; swscale.lib

添加后界面如下:

至此,FFmpeg的开发环境配置完毕了。

3.验证FFmpeg开发环境

如何验证FFmpeg能正常使用了,这个简单,运行一段FFmpeg的代码即可。

例如:

#include "pch.h"
#include <iostream> extern "C"{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
} int main(int argc, char* argv[]) {
printf("%s\n", avcodec_configuration());
return ;
}

如果编译运行不报错,且输出如下的界面,则说明FFmpeg设置成功了:

FFmpeg学习的环境问题没有了,后续就可以可以自行学习和发挥了。海阔凭鱼跃,天高任鸟飞!

4.  补充

如果在运行代码的时候,IDE提示,***声明已被否决,这时可以通过以下几种方式来解决:

1. 修改项目的配置

Project Properties > Configuration Properties > C/C++ > General > SDL checks关掉

2. 代码中添加编译参数信息

#pragma warning(disable: 4996)

Visual Studio 开发(二):VS 2017配置FFmpeg开发环境的更多相关文章

  1. ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序

    基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...

  2. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  3. Visual Studio C# 利用git和github协同开发时产生冲突的解决办

    Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料 ...

  4. 用Visual Studio 2015 编写 MASM 汇编程序(一)环境配置

    原文地址:http://kipirvine.com/asm/gettingStartedVS2015/index.htm#CreatingProject 下面内容根据上面文章翻译整理而来! 开发32位 ...

  5. Visual Studio 2015 使用ODP.net进行EF开发

    刚转了新公司,以前公司都是用VS+MSSQL作为开发工具的 现在新公司由于数据库是Oracle,而且新公司比较小规模,开发团队也没有什么规范 访问数据库的方式一直使用ADO.net的DataTable ...

  6. caffe搭建----Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)

    原文来源:  来源:Angle_Cal  2016-12-19 17:32 本博主修改于2017-09-12.  版权所有,转载请注明出处.   BLVC版本的Caffe-windows已经支持Vis ...

  7. visual studio 2015 Opencv4.0.1配置

    最近由于工作需要,要配置opencv,我的电脑vs的version是2015,在网上下载了最新的opencv 4.0.1 自己摸索总是很困难,网上的例子也比较多,但版本比较低,也不确定适不适合vs20 ...

  8. visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建

    visual studio 2019开始支持cmake跨平台开发. 以前cmake项目需要先生成vs项目,然后vs直接使用vs项目开发.现在可以直接用vs2019创建或打开cmake项目. 使用vis ...

  9. Visual Studio中没有为此解决方案配置选中要生成的项目

    问题: Visual Studio点击"生成解决方案"时,出现"没有为此解决方案配置选中要生成的项目". 解决方法: 菜单->生成->配置管理器-& ...

随机推荐

  1. 计算机网络ip地址

    ip地址组成 IP地址 = 网络地址 + 主机地址(又称:主机号和网络号组成) 我们通常将网络也可以分为很多的子网络,每个子网络有自己的网络地址,每个子网络由很多的计算机组成(当然也可以包含另外一个子 ...

  2. Unity3D-RayMarch-几何图元0

    效果图: 将下面的shader代码对应的Material拖给一个面片,即可看到效果. shader代码: // Upgrade NOTE: replaced '_Object2World' with ...

  3. 人脸识别1:n对比 (一)

    本项目采用了 Face++人脸识别 第三方接口,实现了自选本地手机相册图片上传人脸(faceSet中添加人脸) 和 自选本地手机相册图片寻找出集合中相似度最高的一个face,可返回比对相似度等信息. ...

  4. RNAseq测序reads定位

    RNAseq测序reads定位 发表评论 3,210 A+ 所属分类:Transcriptomics   收  藏 获得RNA-seq的原始数据后,首先需要将所有测序读段通过序列映射(mapping) ...

  5. Pyhon入门基础(1)---Pycharm安装及破解

    一.下载安装 1.首先我们可以对比一下社区版和专业版的区别: 2.下载地址:https://www.jetbrains.com/pycharm/download/ 当我们开发的项目比较大的时候通常会涉 ...

  6. 服务管理之httpd

    目录 1. httpd简介 2. httpd版本 2.2 httpd-2.4新增的模块 3. httpd基础 3.1 httpd自带的工具程序 3.2 rpm包安装的httpd程序环境 3.3 web ...

  7. MongoDB学习记录(二) - MongoDB的"增查改删"操作之"增"

    如果做插入文档操作的集合不存在,那么集合将被创建 db.collection.insertOne() insertOne为collection插入一条文档,如果文档的_id字段未指定,MongoDB会 ...

  8. 口试Linq题

    LINQ to SQL与IQueryable 理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列. LINQ to Object和LINQ to SQL有何区别 ...

  9. 使用kbmmw smarthttpservice 简单返回数据库结果

    这个很简单,直接上码. 服务器端声明过程 [kbmMW_Rest('method:get, path:querytable')] [kbmMW_Method] function querytable( ...

  10. SVN用法及常见问题分析

    SVN中英文对比: 1,今天遇到的新问题,在父节点里面找不到子节点文件夹,在子节点里面可以上传但是却一直上传不上去. 具体原因:子文件夹里面有个.svn文件(打开隐藏的项目可见),是的子文件夹的svn ...