基于ShiftMediaProject使用vs2022编译调试ffmpeg

基于ShiftMediaProject使用vs2022编译调试ffmpeg

一、配置目录

因为编译ffmpeg除了基础库以外还需要一些其他的依赖库,ShiftMediaProject部署脚本会下载依赖库到项目同级目录下,为了能清楚的确定哪些是编译ffmpeg使用的库,哪些是你自己的项目,所以在编译前最好先建立一个空目录用于下载库。
以我编译完成后的目录结构为例:
在这里插入图片描述

  1. github:我的所有项目的根目录。
  2. github/ffmpeg:ffmpeg编译用目录。
  3. github/ffmpeg/ffmpeg_vs:我用来clone代码用的目录。因为里面内容太多暂不截图了。
  4. github/ffmpeg/msvs:这个是项目默认编译输出的目录,生成的lib库会默认在这里,如果后期觉得不好的话可以自行修改生成目录。

二、下载配置编译环境

1、clone项目

在ffmpeg_vs的目录下clone项目。
在这里插入图片描述

github地址:https://github.com/ShiftMediaProject/FFmpeg
命令:

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

如果只是想编译的话不需要拉取整个项目,毕竟国内没代理的话clone比较慢,可以只clone深度为一就可以了这样会快一点。

git clone --depth=1 https://github.com/ShiftMediaProject/FFmpeg.git

2、下载依赖项目

进入clone完项目的SMP目录下执行project_get_dependencies.bat脚本,会默认帮你clone依赖的项目。clone下来的地址和FFmpeg同级。这一步就非常考验网络了。最好是开代理,否则clone会失败很多次就很烦。为了方便clone,所以和上面一样,我把脚本里的clone的部分代码也加上了 –depth=1
在这里插入图片描述

3、clone依赖编译器

github地址:
yasm :https://github.com/ShiftMediaProject/VSYASM
nasm :https://github.com/ShiftMediaProject/VSNASM

同样是clone这两个项目。目录和ffmpeg同级。
clone完成后以 管理员 的方式打开cmd窗口。分别执行VSYASM和VSNASM目录下的install_script.bat
例:
在这里插入图片描述

4、下载依赖的头文件

如果这时候打开项目,可以编译部分项目了。但直接打开编译的话会提示缺少头文件,所以我们这步先把头文件搞下来。我看了一下默认的配置。项目头文件会查找ffmpeg的根目录。因为不想改配置,所以我的头文件基本上都是放在根目录。

AMF

github地址:https://github.com/GPUOpen-LibrariesAndSDKs/AMF
同样是clone到ffmpeg同级目录。clone完成后进入include目录
在这里插入图片描述
拷贝这个目录下的所有文件,然后在ffmpeg根目录下建一个AMF目录,并拷贝进去。结果如下
在这里插入图片描述

ffnvcodec

github地址:https://github.com/FFmpeg/nv-codec-headers
同样先clone项目,然后再拷贝目录下ffnvcodec文件到ffmpeg目录
源目录:
在这里插入图片描述
目标目录:
在这里插入图片描述

opengl

新建gl目录,下载gl头文件到目录下。目前只要图里的两个文件就可以了。
下载地址:
https://registry.khronos.org/OpenGL/api/GL/
在这里插入图片描述
新建KHR目录,下载KHR文件到指定目录下。
下载地址:
https://registry.khronos.org/EGL/api/KHR/
在这里插入图片描述

三、打开项目并编译

现在可以打开vs项目了。项目在SMP目录下,文件名为ffmpeg_deps.sln。
在这里插入图片描述

打开后就和正常编译vs项目是一样的,生成就可以了。

在这里插入图片描述

默认生成后的文件在最上面一层的msvc目录下。现在你自己想怎么用就怎么用了。
在这里插入图片描述

四、参考资料

https://zhuanlan.zhihu.com/p/64442121

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用MSYS2和VS2015编译FFmpeg,你可以按照以下步骤进行操作: 1. 首先,你需要下载并安装MSYS2。你可以从官方网站https://www.msys2.org/下载MSYS2安装程序。 2. 安装完成后,打开MSYS2的命令行界面,并运行以下命令来安装必要的工具:pacman -S make gcc diffutils 3. 为了避免和MSVC的link.exe程序冲突,你需要将C:\msys64\usr\bin\link.exe重命名为C:\msys64\usr\bin\link_orig.exe。 4. 下载YASM(The Yasm Modular Assembler),你可以从官方网站https://www.tortall.net/projects/yasm/wiki/Download下载YASM。将下载的yasm--win64.exe重命名为yasm.exe,并将其拷贝至MSYS2的安装目录(比如C:\msys64)。 5. 现在你可以下载FFmpeg的源代码。你可以从官方GitHub仓库https://github.com/FFmpeg/FFmpeg下载FFmpeg的源码。 6. 打开MSYS2的命令行界面,并切换到FFmpeg源码所在的目录。 7. 运行以下命令来配置FFmpeg编译选项:./configure --toolchain=msvc --arch=x86_64 --enable-yasm --enable-asm --enable-shared --disable-static 8. 配置完成后,你可以运行make命令来开始编译FFmpeg。请注意,编译过程可能会比较耗时,请耐心等待。 9. 编译完成后,你可以使用编译好的库来进行你的项目开发。 总结一下,使用MSYS2和VS2015编译FFmpeg的步骤包括安装MSYS2、安装必要的工具、重命名link.exe、下载YASM、下载FFmpeg源码、配置编译选项、运行make命令进行编译。希望以上信息对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用msys64+vs2019在编译ffmpeg](https://download.csdn.net/download/ihmhm12345/13116875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用MSYS2 + VS2022编译FFmpeg](https://blog.csdn.net/powang2011/article/details/122724685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值