【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )
文章目录
- 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 )相关推荐
- Visual Studio Code + SDCC开发51单片机 1 - 环境安装
目录 1. 安装Visual Studio Code 2. 安装EIDE 3. 安装SDCC 4. 创建工程 5. 编译 1. 安装Visual Studio Code 在Visual Studio ...
- Visual SourceSafe 2005(VSS2005)与Visual Studio 2005的开发环境搭建
Visual SourceSafe 2005(VSS2005)与Visual Studio 2005的开发环境搭建 文章来源(WEB开发技术知识库): http://cn-web.com/cnweb/ ...
- visual studio .net 2003开发环境搭建
visual studio .net 2003开发环境搭建 引言 事情的起因是某课程的实验要求开发兼容windows ce和pocket pc的应用程序,并使用模拟器演示. 由于开发环境过于远古,相关 ...
- 【开发环境】安装 Visual Studio Ultimate 2013 开发环境 ( 下载软件 | 安装软件 | 运行软件 )
文章目录 一.下载 Visual Studio Ultimate 2013 二.安装 Visual Studio Ultimate 2013 三.运行 Visual Studio Ultimate 2 ...
- ASP.NET 4 和 Visual Studio 2010 Web 开发概述
声明:本文是ASP.NET 白皮书 ASP.NET 4 and Visual Studio 2010 Web Development Overview 的阅读摘要,只是本人的学习记录,并非完整翻译,仅 ...
- 【Cocos新手入门】cocos creator + Visual Studio 做游戏开发的基础教程
本篇文章主要讲解cocos 开发游戏之前所需准备的开发环境和idea使用方法教程 适用人群:刚开始学习cocos游戏引擎的同学 材料版本信息: 1.cocos creator V3.4.2 2.Vis ...
- Visual Studio 插件的开发
Visual Studio 插件的开发 起因 在做项目的时候,经常需要根据表结构create一些实体类,写多了,实在是觉得无趣,于是就琢磨着做个代码生成工具.当然现在有很多现成的,拿来用就好,可是总想 ...
- 在现有的Visual Studio 2017中设置和测试Python环境
目录 介绍 背景 设置Python环境 结论 介绍 根据Stack Overflow开发者调查,在2018年,Python成为最受欢迎的语言列表.Python是用于机器学习.Web开发和数据科学的跨平 ...
- 详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Visual Studio 代码远程开发扩展(Code Remote Development Extension) 1.50 未能在将其用作 s ...
最新文章
- powerdesigner反向MySQL5.1数据库 生成ER图
- 数模学习笔记——微分方程(传染病模型)
- 国家计算机科学进展,高等学校计算机一级学科教学改革与科学办学最新进展.pdf...
- 离散对数(关于方程x^A=B(mod C)的解)
- Deep3DBox论文解读
- 387. First Unique Character in a String - String
- How to extract datafiles from asm diskgroup?
- 魅族 android版本升级,魅族系统更新APP
- 让 Microsoft Office 下课!强烈推荐WPS2005!!
- 《华为研发》阅读 - 11 (中研部组织结构)
- tgp登录dnf一直显示连接服务器失败,DNF总网络连接失败是为什么?
- Hive 修复分区 msck repair table
- 闭合曲线 网格坐标 matlab,MATLAB曲线绘制
- 关于六度分割理论的一点认识
- consul剔除无效服务
- win10同时安装wps和office时,如何设置默认应用为office!!!
- 坚持学习、只是尽力维持不退步吧了
- 手机计算机藏应用,手机“计算器”隐藏功能,一键把隐私照片加密
- javassist技术研究Sql注入检测
- 查找、替换使用正则表达式
热门文章
- C# 结构与类的区别
- Redux学习(2) ----- 异步和中间件
- 存储过程里面的CASE,WHEN,THEN的用法
- 在进入新版本 的时候,进行推送引导
- 开发和使用Web用户控件
- mysql UNIX时间戳与日期的相互转换
- Zxing 竖屏切换 android
- 微信小程序实现图片是上传、预览功能
- 六十.完全分布式 、 节点管理 、 NFS网关
- React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.