windows下使用ShiftMediaProject编译调试FFmpeg

为什么要编译FFmpeg?

  • 定制模块
  • 调试源码

windows下编译

推荐项目ShiftMediaProject/FFmpeg

平时总是看到一些人说windows下编译FFmpeg很麻烦,这时候我就都是微微一笑,你是不知道ShiftMediaProject/FFmpeg这个开源项目呀。这个项目可以让你在windows下很轻松地用VS编译调试FFmpeg。

零 创建目录结构如下

  • 你指定的构建目录
    • msvc (OutputDir)
    • source
      • FFmpeg

如图
image.png

一 克隆仓库

克隆仓库https://github.com/ShiftMediaProject/FFmpeg
这里我对版本没有要求所以不切换commit,你也可以指定commit ID。
使用前查看SMP/readme.txt
VS版本要大于等于2013,建议不要用VS2022,因为ASM的说明里没有说支持2022。

二 下载依赖

可以看到FFmpeg依赖的模块非常多
运行project_get_dependencies.bat下载依赖
可以重新运行project_get_dependencies.bat看看有没有报错,有报错则可能有的依赖没下载成功,这时要么继续运行该脚本下载,要么手动下载失败的仓库。
下图可以看到gmp这个仓库下载失败了
image.png
再执行一次脚本。

三 下载额外的依赖

还需要一下额外的依赖要单独下载

  1. opengl

https://registry.khronos.org/OpenGL/index_gl.php下载glext.h,wglext.h和khrplatform.h
https://registry.khronos.org/OpenGL/api/GL/glext.h
https://registry.khronos.org/OpenGL/api/GL/wglext.h
https://www.khronos.org/registry/EGL/api/KHR/khrplatform.h

glext.h,wglext.h放到目录msvc/include/gl
image.png
khrplatform.h放到目录msvc/include/KHR
image.png

  1. ffnvcodec

克隆仓库https://github.com/FFmpeg/nv-codec-headers
将nv-codec-headers/include目录拷贝到msvc/include
image.png

  1. AMF

下载可能很慢(建议科学上网)
克隆https://github.com/GPUOpen-LibrariesAndSDKs/AMF
将amf/public/include里的两个目录拷贝到msvc/include/AMF
image.png

四 下载ASM

https://github.com/ShiftMediaProject/VSNASM/releases/latest
以管理员身份运行install_script.bat脚本
image.png
可以看到运行成功,如果失败就参考readme吧。

五 编译

打开ShiftMediaProject-build\source\FFmpeg\SMP\ffmpeg_deps.sln解决方案
选择Debug+x64
构建解决方案(慢慢等)
编译成功,将下图三个目录拷贝到你的工程,导入VS,就能开发了。
image.png

六 调试

将ffmpeg设为启动项目
F11启动调试,报错:
image.png
如下图可以看到调试的命令路径不是exe生成路径(链接器输出文件)
image.png
image.png
所以要将链接器输出路径拷贝到调试->命令
再次F11,单步调试成功。
ffplay和ffprobe同理(重入上面操作)

参考博客

https://www.cnblogs.com/cfas/p/11974426.html
https://blog.csdn.net/fengbingchun/article/details/103735560


linux下编译

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

mkdir -p ~/ffmpeg_sources && \
cd ~/ffmpeg_sources && \
wget -O ffmpeg-5.1.2.tar.bz2 https://ffmpeg.org/releases/ffmpeg-5.1.2.tar.bz2 && \
tar jxvf ffmpeg-5.1.2.tar.bz2
cd ~/ffmpeg_sources/ffmpeg-5.1.2 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs="-lpthread -lm" \
  --ld="g++" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-gnutls \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-libpulse \
  --enable-pic \
  --enable-shared \
  --enable-nonfree && \
PATH="$HOME/bin:$PATH" make -j8 && \
make install && \
hash -r
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Windows使用MSYS2编译FFmpeg,你可以按照以下步骤进行操作: 1. 首先,下载FFmpeg的源代码。你可以在官方网站上找到下载链接。 2. 安装MSYS2 MinGW64。你可以在官方网站上找到安装程序。 3. 在MSYS2 MinGW64的命令行中,执行以下命令来配置编译环境和编译FFmpeg: ``` pacman -S mingw-w64-x86_64-toolchain // 安装mingw工具链 pacman -S msys/base-devel // 安装基础工作环境 pacman -S yasm nasm gcc // 安装汇编和编译器 pacman -S mingw64/mingw-w64-x86_64-SDL2 // 安装FFmpeg依赖的SDL2库 ``` 4. 解压下载的FFmpeg源码,并进入解压后的文件夹。使用以下命令进行配置和编译安装: ``` cd /path/to/ffmpeg-source-code // 进入FFmpeg源码文件夹 ./configure --prefix=/usr/local/ffmpeg // 配置安装路径 make // 编译源码(需要一段时间) make install // 安装编译结果 ``` 5. 编译完成后,你就可以在指定的安装路径(默认为/usr/local/ffmpeg)找到生成的相关文件。 请注意,编译过程中可能会出现一些错误。如果遇到问题,你可以参考一些博客或文档,或者重新安装MSYS2并重复上述步骤来解决问题。 希望这些步骤对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [windows使用MSYS2编译FFmpeg](https://blog.csdn.net/ice_bear221/article/details/128515239)[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: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值