FFmpeg Windows编译调试

为何要在Windows上编译FFmpeg

FFmpeg是一个Linux环境的MakeFile工程。

而在Windows上

1 如果仅仅是使用,最方便的就是下载别人编译好的FFmpeg.exe直接在cmd命令行里使用。

2 如果是想自己编译使用,最方便的就是在WSL里面编译使用。

3 在Windows上用MSYS2编译ffmpeg.exe ffmpeg.pdb,直接创建项目调试。

需求

为了了解FFmpeg原理,阅读理解探索其源代码实现,需要在Windows环境下调试FFmpeg。

FFmpeg源码 官方下载

 Index of /releases  Download FFmpeg

Windows上的Linux编译环境

Compile ffmpeg libs on Windows with Visual Studio compiler (pracucci.com)

msys2

清华镜像下载最新版msys2 : msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

默认路径安装即可:C:\msys64

安装完,桌面有个快捷方式,打开

 

这个窗口意味着msys实际上是一个Linux子系统。实际上这个控制台是:

其实还有其他几个版本:

在这个子系统中安装工具:

$ pacman -S make gcc diffutils

 

 上图是先执行下面指令执行完之后的截图。安装了make gcc diffutils这三个软件到msys2中。

使用vs2022的命令行打开msys2的MinGW

msys2_shell.cmd  -mingw64

上图显示,虽然从vs2022的命令行打开了msys2,但依然找不到cl.exe 和link.exe 

确保你的vs2022的某个版本的cl.exe link.exe能找到:

export PATH=${PATH}:/C/'Program Files'/'Microsoft Visual Studio'/2022/Community/VC/Tools/MSVC/14.32.31326/bin/Hostx64/x64

再尝试which cl ; which link;

用msys2 切换到FFmpeg代码目录,执行配置: 

 ./configure --toolchain=msvc --arch=x86 --enable-asm --enable-shared  --disable-static  --disable-x86asm

make

 FFmpeg在Windows下使用VisualStudio调试 - 爱码网 (likecs.com)

上面的所有流程走完,会生成FFmpeg.exe ffmpeg_g.exe 以及对应的pdb文件。

 

有了pdb文件我们就可以调试FFmpeg了。

具体操作如下:

配置VisualStudio工程,调试ffmpeg

(1)创建一个新的空工程,设置工程属性如下

其中命令参数-i C:\testinput.mp4 -y c:\output.mp4代表将c盘下的testinput.mp4文件转换为c盘下的output.mp4文件,所以你需要自己准备一个testinput.mp4文件放到c盘根目录下

(2)将fftools/ffmpeg.c文件添加到本工程中,在main函数里面添加断点:

 

(3)点击F5运行调试,会提示编译出错,是否在上次编译成功结果上继续运行,选择“是”。然后就可以在断点处断下。

剩下的过程,大家自己去享受吧。

下载x264 x264, the best H.264/AVC encoder - VideoLAN

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ffmpeg交叉编译移植是将ffmpeg库从一个平台编译并移植到另一个平台的过程。这个过程可以让我们在目标平台上运行ffmpeg库,并使用其功能。 要进行ffmpeg交叉编译移植,可以按照以下步骤进行操作: 1. 确定目标平台和编译环境。 在交叉编译移植之前,需要确定目标平台的操作系统和架构,并准备好相应的编译环境。例如,如果目标平台是ARM架构的嵌入式设备,需要安装适用于ARM平台的交叉编译工具链。 2. 获取ffmpeg源代码。 可以从FFmpeg的官方GitHub存储库中获取ffmpeg的源代码。使用git clone命令或直接下载源代码压缩包来获取代码。 3. 配置编译选项。 进入ffmpeg源代码目录,并使用configure命令来配置编译选项。根据目标平台和需求,选择适当的选项进行配置。可以参考FFmpeg的官方文档或者之前成功移植的经验来确定合适的选项。 4. 进行交叉编译。 在完成配置后,使用make命令进行交叉编译。根据编译环境的不同,可能需要使用特定的编译选项或命令来进行交叉编译。可以参考之前成功移植的经验或相关的教程来进行操作。 5. 测试和调试。 在编译完成后,将生成的ffmpeg库移植到目标平台上,并进行测试和调试。可以使用一些示例代码或自己编写的代码来测试ffmpeg库的功能和性能。 请注意,由于不同的平台和需求,ffmpeg的交叉编译移植可能会有一些特定的问题和挑战。在遇到问题时,可以参考相关的文档、教程和社区讨论来获取帮助和解决方案。引用提供了一些关于在Windows平台上编译带有libx264和libmp3lame的FFmpeg库的详细步骤,可以参考这些资源来获取更具体的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++程序员Carea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值