文章目录

  • Visual Studio 2019 社区版 CMakeList 开发环境安装
  • 创建 FFMPEG 配置项目
  • FFMPEG 开发包下载
  • FFMPEG 头文件 静态链接库 ( .lib ) 动态链接库 ( .dll ) 文件处理
  • Visual Studio Cmake 项目配置 FFMPEG
  • 包含 avcodec 库并使用

Visual Studio 2019 社区版 CMakeList 开发环境安装


配置该环境主要是配合 Android 进行开发 , 目前 Android 中调用 C/C++ 代码使用的都是 CMake 构建项目 , 因此在次数 VS 中要使用 CMake 构建 FFMPEG 的开发环境 ;

先搭建基础的开发环境 , 然后在配置 FFMPEG 源码 ;

基础开发环境搭建 , 博客地址 : https://hanshuliang.blog.csdn.net/article/details/98175395


创建 FFMPEG 配置项目


1.创建项目 : 打开 Visual Studio 后 , 点击 “创建新项目” , 开始创建 CMake 项目 ;

2.选择项目类型 : 选择 CMake 项目类型 ;


3.输入项目名称 , 选择项目位置 , 解决方案命名使用系统自动生成的 , 点击 “创建” 按钮 , 创建新项目 ;

4.进入代码界面后 , 会自动生成解决方案 , 点击运行测试项目是否完善 ;


FFMPEG 开发包下载


1.FFMPEG 官网地址 : http://ffmpeg.org/ , 在主页中点击 “Download” 下载按钮 , 进入下载界面 ;

2.下载页面链接 ( 默认 Linux ) : http://ffmpeg.org/download.html
在下面页面中默认是 Linux 的下载项 , 由于要在 Windows 系统中的 Visual Studio 中搭建开发环境 , 这里我们选择 Windows 下载项, 这里选择 Windows 下载项;

3.Windows 下载页 : http://ffmpeg.org/download.html#build-windows
在 Windows 下载页面中 , 点击 “Windows Builds” 链接 , 进入 Windows 开发包下载页面 ;

4.FFMPEG Windows 开发包地址 : https://ffmpeg.zeranoe.com/builds/
在该界面中 , “Version” 选项下选择要下载的 FFMPEG 版本 , 可以选择一个稳定版本 , 也可以选择最新版本 , 这里选择最新的 2019年8月13日版本 , “Architecture” 下选择要下载的架构 , 这里选择 “Windows 64-bit” , “Linking” 选项下的三个 ( Static , Shared , Dev ) 都下载下来 ;

下载的文件为 :
ffmpeg-20190813-8cd96e1-win64-static.zip : 包含有 FFMPEG 文档 ;
ffmpeg-20190813-8cd96e1-win64-shared.zip : 包含 .dll 动态链接库 ;
ffmpeg-20190813-8cd96e1-win64-dev.zip : 包含相关头文件和 lib 静态链接库 ;


FFMPEG 头文件 静态链接库 ( .lib ) 动态链接库 ( .dll ) 文件处理


1.头文件和静态链接库 ( .lib ) 解压拷贝

① 解压 ffmpeg-20190813-8cd96e1-win64-dev.zip 文件 , 如下 :

② 将其中的 lib 和 include 目录整体拷贝到 CMake 项目的源码目录下 ;

2.动态链接库 ( .dll ) 解压拷贝

① 将 ffmpeg-20190813-8cd96e1-win64-shared.zip 解压 , 在 ffmpeg-20190813-8cd96e1-win64-shared/bin 目录下有 8 个 .dll 文件 , 内容如下 :

② 将其拷贝到 C:\Windows\System32 目录下 , 如下图所示 :

下面是从 FFMPEG 官网下载的三个压缩包 , 及其解压后的目录截图 :


Visual Studio Cmake 项目配置 FFMPEG


执行该步骤前确保上个步骤执行完毕 ;
① 拷贝头文件和静态链接库到项目源码目录中 ;
② 拷贝 8 个动态链接库 ( .dll ) 到 C:\Windows\System32 中 ;

CMakeList.txt 配置 :

  • 1.要配置的文件 : 此处要配置的 CMake 配置文件是源码路径下的 CMakeList.txt 配置文件 , 不是项目根目录下的配置文件 ;
  • 2.配置头文件目录 : 之前拷贝的 include 目录到源码目录下 , include 目录与该配置文件在同一个目录 , 因此这里使用 “include” 相对路径配置即可 ;
    • 相对路径方案配置 : 直接配置 “include” 路径 ;
    • 绝对路径方案配置 : 这里也可以配置其绝对路径 , “A:/develop/workspace/VS/002_FFMPEG/002_FFMPEG/include” ;
    • 注意点 : 配置路径中不要使用拷贝出来的 “” , 需要修改成 “/” 作为文件分隔符 ;
#配置头文件目录 : 如果想要在写代码时调用 FFMPEG 中的函数 , 必须设置头文件的查找位置
include_directories("include")
  • 3.配置库文件目录 : 这里也配置相对路径 “lib” ;
#配置库文件目录 : 设置 lib 库文件查找目录 , 相当于 Java 中的 jar 包
link_directories("lib")
  • 4.配置 8 个 FFMPEG 库链接 : 使用 target_link_libraries 配置 FFMPEG 的8个动态链接库 , 注意该配置必须在解决方案配置之后 , 要先配置生成 002_FFMPEG 项目 , 然后配置该配置项 ;
#设置编译链接的 FFMPEG 库 , 需要把 FFMPEG 的库都配置到下面
#注意 使用 002_FFMPEG 的前提是 , 该项目必须在 002_FFMPEG 配置后面进行配置
target_link_libraries(002_FFMPEG    #本项目的解决方案名称avcodec      #音视频编码核心库 , 用于音视频或图片编解码avdevice #硬件采集 , 加速 , 显示 库avfilter   #音视频滤波器avformat #音视频封装格式生成或解析 avutil        #该库中封装了一些公共的工具函数postproc    #封装了同步, 时间计算的简单算法swresample #音视频编解码格式预设swscale      #原始视频格式转换库
)
  • 5.完整的 CMakeList.txt 配置文件 :
# CMakeList.txt: 002_FFMPEG 的 CMake 项目,在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)#配置头文件目录 : 如果想要在写代码时调用 FFMPEG 中的函数 , 必须设置头文件的查找位置
include_directories("include")#配置库文件目录 : 设置 lib 库文件查找目录 , 相当于 Java 中的 jar 包
link_directories("lib")# 将源代码添加到此项目的可执行文件。
add_executable (002_FFMPEG "002_FFMPEG.cpp" "002_FFMPEG.h")#设置编译链接的 FFMPEG 库 , 需要把 FFMPEG 的库都配置到下面
#注意 使用 002_FFMPEG 的前提是 , 该项目必须在 002_FFMPEG 配置后面进行配置
target_link_libraries(002_FFMPEG    #本项目的解决方案名称avcodec      #音视频编码核心库 , 用于音视频或图片编解码avdevice #硬件采集 , 加速 , 显示 库avfilter   #音视频滤波器avformat #音视频封装格式生成或解析 avutil        #该库中封装了一些公共的工具函数postproc    #封装了同步, 时间计算的简单算法swresample #音视频编解码格式预设swscale      #原始视频格式转换库
)# TODO: 如有需要,请添加测试并安装目标。

包含 avcodec 库并使用


包含 avcodec 库并使用 : 该库是 FFMPEG 的核心库 , 8 个动态链接库之一 ;

  • 1.包含 avcodec 库 头文件 : 注意 C/C++ 兼容 , 该库是 C 语言库 , 需要在 extern “C”{} 中包含该库 ;
extern "C" {#include <libavcodec/avcodec.h>
}
  • 2.打印 avcodec 版本号 : 调用 av_version_info() 方法 , 即可获取 avcodec 版本号 ;
 //打印 avcodec 版本号cout << av_version_info() << endl;
  • 3.完整代码 :
// 002_FFMPEG.cpp: 定义应用程序的入口点。
//#include "002_FFMPEG.h"using namespace std;extern "C" {#include <libavcodec/avcodec.h>
}int main()
{cout << "Hello FFMPEG。" << endl;//打印 avcodec 版本号cout << av_version_info() << endl;return 0;
}
  • 4.执行结果 :
Hello FFMPEG。
N-94530-g8cd96e13ee


【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )相关推荐

  1. Visual Studio Code + SDCC开发51单片机 1 - 环境安装

    目录 1. 安装Visual Studio Code 2. 安装EIDE 3. 安装SDCC 4. 创建工程 5. 编译 1. 安装Visual Studio Code 在Visual Studio ...

  2. Visual SourceSafe 2005(VSS2005)与Visual Studio 2005的开发环境搭建

    Visual SourceSafe 2005(VSS2005)与Visual Studio 2005的开发环境搭建 文章来源(WEB开发技术知识库): http://cn-web.com/cnweb/ ...

  3. visual studio .net 2003开发环境搭建

    visual studio .net 2003开发环境搭建 引言 事情的起因是某课程的实验要求开发兼容windows ce和pocket pc的应用程序,并使用模拟器演示. 由于开发环境过于远古,相关 ...

  4. 【开发环境】安装 Visual Studio Ultimate 2013 开发环境 ( 下载软件 | 安装软件 | 运行软件 )

    文章目录 一.下载 Visual Studio Ultimate 2013 二.安装 Visual Studio Ultimate 2013 三.运行 Visual Studio Ultimate 2 ...

  5. ASP.NET 4 和 Visual Studio 2010 Web 开发概述

    声明:本文是ASP.NET 白皮书 ASP.NET 4 and Visual Studio 2010 Web Development Overview 的阅读摘要,只是本人的学习记录,并非完整翻译,仅 ...

  6. 【Cocos新手入门】cocos creator + Visual Studio 做游戏开发的基础教程

    本篇文章主要讲解cocos 开发游戏之前所需准备的开发环境和idea使用方法教程 适用人群:刚开始学习cocos游戏引擎的同学 材料版本信息: 1.cocos creator V3.4.2 2.Vis ...

  7. Visual Studio 插件的开发

    Visual Studio 插件的开发 起因 在做项目的时候,经常需要根据表结构create一些实体类,写多了,实在是觉得无趣,于是就琢磨着做个代码生成工具.当然现在有很多现成的,拿来用就好,可是总想 ...

  8. 在现有的Visual Studio 2017中设置和测试Python环境

    目录 介绍 背景 设置Python环境 结论 介绍 根据Stack Overflow开发者调查,在2018年,Python成为最受欢迎的语言列表.Python是用于机器学习.Web开发和数据科学的跨平 ...

  9. 详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Visual Studio 代码远程开发扩展(Code Remote Development Extension) 1.50 未能在将其用作 s ...

最新文章

  1. powerdesigner反向MySQL5.1数据库 生成ER图
  2. 数模学习笔记——微分方程(传染病模型)
  3. 国家计算机科学进展,高等学校计算机一级学科教学改革与科学办学最新进展.pdf...
  4. 离散对数(关于方程x^A=B(mod C)的解)
  5. Deep3DBox论文解读
  6. 387. First Unique Character in a String - String
  7. How to extract datafiles from asm diskgroup?
  8. 魅族 android版本升级,魅族系统更新APP
  9. 让 Microsoft Office 下课!强烈推荐WPS2005!!
  10. 《华为研发》阅读 - 11 (中研部组织结构)
  11. tgp登录dnf一直显示连接服务器失败,DNF总网络连接失败是为什么?
  12. Hive 修复分区 msck repair table
  13. 闭合曲线 网格坐标 matlab,MATLAB曲线绘制
  14. 关于六度分割理论的一点认识
  15. consul剔除无效服务
  16. win10同时安装wps和office时,如何设置默认应用为office!!!
  17. 坚持学习、只是尽力维持不退步吧了
  18. 手机计算机藏应用,手机“计算器”隐藏功能,一键把隐私照片加密
  19. javassist技术研究Sql注入检测
  20. 查找、替换使用正则表达式

热门文章

  1. C# 结构与类的区别
  2. Redux学习(2) ----- 异步和中间件
  3. 存储过程里面的CASE,WHEN,THEN的用法
  4. 在进入新版本 的时候,进行推送引导
  5. 开发和使用Web用户控件
  6. mysql UNIX时间戳与日期的相互转换
  7. Zxing 竖屏切换 android
  8. 微信小程序实现图片是上传、预览功能
  9. 六十.完全分布式 、 节点管理 、 NFS网关
  10. React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.