【FFmpeg】windows 使用 vs2019编译 FFmpeg - ShiftMediaProject


前言

FFmpeg的源码如果能够使用 vs2019单步调试,这将是一件美事,极大方便阅读和调试整个 FFmpeg项目。

其实也很简单,借助开源项目 ShiftMediaProject 就可以得到一份可以使用 vs2019调试的 FFmpeg项目。

注意事项

  1. 一定要以管理员权限启动 PowerShell 控制台窗口
  2. 执行 project_get_dependencies.bat 下载脚本如果有些库没有下载下来,可能是网络问题,需要fan墙。
  3. 需要手动创建 include 文件夹,放入 AMF ffnvcodec GL KHR 头文件,具体下载地址参考 FFmpeg\SMP\readme.txt
  4. 先安装 nasm yasm 后打开 ffmpeg_deps.sln,否则有些项目无法加载
  5. 需要修改vs项目的 调试->命令 否则 F5 无法调试

下载编译 ShiftMediaProject 项目

目录结构

- msvc (OutputDir)                (该项目默认的 VS 编译输出的目录,编译好的ffmpeg  ffplay ffprobe都在这里)
- source                      (这个是需要的上一级目录,FFmpeg源码和三十几个个依赖项目都会下载到这里)
  - FFmpeg                    (这个是 clone 到本地的项目目录)
  - ..Any other libraries source code..    (其他的三十个依赖的项目)

编译流程

参考以下步骤,拉取并编译 ShiftMediaProject 项目

# 0.管理员权限启动 PowerShell 并创建项目源码目录
mkdir source && cd source

# 1.只拉取一层提交,加快下载速度
git clone --depth=1 https://github.com/ShiftMediaProject/FFmpeg.git

# 2.下载 yasm nasm
git clone https://github.com/ShiftMediaProject/VSYASM.git
git clone https://github.com/ShiftMediaProject/VSNASM.git

# 3.分别执行nasm 和yasm安装脚本
VSNASM\install_script.bat
VSYASM\install_script.bat

# 4.进入\FFmpeg\SMP 执行 project_get_dependencies.bat 自动下载ffmepg依赖项目
project_get_dependencies.bat

# 5.打开\FFmpeg\SMP\ffmpeg_deps.sln  F7 编译整个项目

# 6. 编译完成后,打开 ffplay ffmpeg ffprobe 项目属性页
# 项目属性 -> 调试 -> 命令  修改为 $(OutDir)bin\x64\$(TargetFileName)

# 7.设置 ffplay 命令参数, F5 启动运行

FFVS-Project-Generator

这个项目可以生成自定义的 FFmpeg vs2019项目,感兴趣自行前往 Git 主页查看 https://github.com/ShiftMediaProject/FFVS-Project-Generator


技术参考

  1. FFmpeg在VS2017下的编译:https://www.cnblogs.com/YZFHKMS-X/p/13601126.html
  2. 使用 VS2015 编译并调试 ffmpeg:https://www.cnblogs.com/BensonLaur/p/10989115.html
  3. ShiftMediaProject Git 地址:https://github.com/ShiftMediaProject/FFmpeg
  4. ShiftMediaProject 主页:https://shiftmediaproject.github.io/
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值