创建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

相关推荐
MediaTea6 小时前
Pr 视频过渡:沉浸式视频 - VR 色度泄漏
音视频·vr
LNTON羚通6 小时前
算法定制LiteAIServer摄像机实时接入分析平台烟火检测算法的主要功能
音视频·视频监控
EasyCVR11 小时前
EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?
人工智能·算法·ffmpeg·音视频·webrtc·监控视频接入
冷凝女子14 小时前
【QT】海康视频及openCv抓拍正脸接口
qt·opencv·音视频·海康
安步当歌15 小时前
【WebRTC】视频编码链路中各个类的简单分析——VideoStreamEncoder
音视频·webrtc·视频编解码·video-codec
顾北川_野15 小时前
Android CALL关于电话音频和紧急电话设置和获取
android·音视频
顶呱呱程序15 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
EasyCVR16 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min16 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders
我喜欢就喜欢1 天前
基于qt vs下的视频播放
开发语言·qt·音视频