当前位置: 首页 > news >正文

创建ffmpeg vs2019工程

0 写在前面

本文主要参考链接:https://www.cnblogs.com/suiyek/p/15669562.html

感谢作者的付出;

1 目录结构

2 下载yasm和nasm

如果自己在安装VS2019等IDE的时候已经安装了它们,则不用再单独进行安装,比如我这边已经安装了,路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC,将这个路径加入到系统环境变量Path中即可;

3 下载第三方头文件

3.1 下载AMF头文件

先获得AMF仓库代码:

git clone https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git

然后把 AMF\amf\public\include\ 下的所有子文件夹复制到 ffmpeg_msvc\msvc\include\AMF 下(目录不存在的话请自行创建)。

3.2 下载ffnvcodec头文件

先获得ffnvcodec仓库代码:

git clone https://github.com/FFmpeg/nv-codec-headers.git

然后把nv-codec-headers\include\ffnvcodec\ 下的所有头文件复制到 ffmpeg_msvc\msvc\include\ffnvcodec 下(目录不存在的话请自行创建)。

在后面编译ffmpeg_deps.sln工程的时出现问题:

经过对https://github.com/FFmpeg/nv-codec-headers仓库进行分析,由于自己使用的master分支,所以nvEncodeAPI.h中的内容是不全的,需要将其切换到origin/sdk/12.0分支:

git checkout --track origin/sdk/12.0

3.3 下载openGL头文件

将链接Index of /OpenGL/api/GL下的glext.hwglext.h执行另存为操作,将它们保存在ffmpeg_msvc\msvc\include\gl下(目录不存在的话请自行创建)。

3.4 下载EGL头文件

将链接Index of /EGL/api/KHR下的khrplatform.h头文件执行另存为操作,将它们保存在ffmpeg_msvc\msvc\include\KHR下(目录不存在的话请自行创建)。

4 下载源码并安装依赖

4.1 下载源码

cd ffmpeg_msvc\smp_src

git clone https://github.com/ShiftMediaProject/FFmpeg.git

这个仓库中实际上就已经包含了ffmpeg的源码,具体如下:

可以通过上图中的Changelog可以查看当前ffmpeg的修改内容,当编译完ffmpeg后,可以使用ffmpeg -version来查看ffmpeg到底使用的是哪一个版本。

4.2 安装依赖

在cmd中运行E:\ffmpeg_msvc\smp_src\FFmpeg\SMP\project_get_dependencies.bat脚本,当执行完该脚本后,也会在smp_src的目录中下载编译ffmpeg所依赖的第三方的代码,具体如下:

5 编译与调试

5.1 编译

进入文件夹:E:\ffmpeg_msvc\smp_src\FFmpeg\SMP,打开ffmpeg_deps.sln工程,共47个项目,具体如下:

编译结果:

查看ffmpeg的版本:

可以尝试编译不同的版本:

5.2 调试

直接设置为启动项目即可;

参考链接:

[1]https://www.cnblogs.com/suiyek/p/15669562.html

http://www.lryc.cn/news/147069.html

相关文章:

  • 无涯教程-机器学习 - Jupyter Notebook函数
  • ubuntu安装单机的Consul
  • 聊聊mybatis-plus的sql加载顺序
  • 基于jeecg-boot的flowable流程审批时增加下一个审批人设置
  • HTML 与 CSS 有什么区别?
  • 服务器数据恢复-vmware ESXI虚拟机数据恢复案例
  • Rabbitmq的Shovel
  • 华为手机实用功能介绍
  • 算法题打卡day50-动态规划 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV
  • jvm与锁
  • 零基础安装pycuda
  • Streamlit 讲解专栏(十一):数据可视化-图表绘制详解(中)
  • d3dx9_35.dll丢失怎么解决
  • Ansible自动化运维工具(二)
  • uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作
  • 机器视觉工程师们,学习是工作以外的事情
  • 数据驱动的生活:探索未来七天生活指数API的应用
  • 【数据分享】2006-2021年我国城市级别的集中供热相关指标(免费获取\20多项指标)
  • 2022年研究生数学建模竞赛优秀论文汇总
  • 阿里云申请免费SSL证书的两种验证方式及配置服务器Tomcat升级HTTPS协议
  • SQL Server 和 MySql 语法和关键字的区别
  • 2023_Spark_实验三:基于IDEA开发Scala例子
  • 2023年高教社杯数学建模思路 - 案例:异常检测
  • C# Dapper 操作Oracle数据库
  • element侧边栏子路由点击不高亮问题
  • C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
  • Linux 进程的睡眠和唤醒详解
  • AI 绘画Stable Diffusion 研究(十五)SD Embedding详解
  • 在Jupyter Notebook中添加Anaconda环境(内核)
  • 适配器模式简介