关于 ffmpeg 使用 msvc 和 mingw32 交叉编译时解码速度的差别

ffmpeg 如果需要在 windows 上使用,可以使用两种方法编译:

  • 使用 ShiftMediaProject 项目维护的 ffmpeg (https://github.com/ShiftMediaProject/FFmpeg),可以直接使用 Visual Studio 打开,并使用 msvc 编译器直接编译
  • 使用 mingw32 交叉编译工具在 linux 上编译

在使用过程中,发现一个问题:msvc 编译的 libavcodec,解码 h.264 视频速度比 mingw32 交叉编译的版本速度慢.

经过研究发现:

  • msvc 编译器不支持内联汇编,在 ShiftMediaProject ffmpeg 中,HAVE_INLINE_ASM 编译选项被关闭;交叉编译时可以打开此选项,编译也能正常通过
  • 内联汇编成了影响解码速度的关键因素,因为 msvc 关闭了此选项,其解码速度会慢于打开内联的版本,非严谨的测试约 10% 的速度差别

对 x264 同理。

posted @ 2026-05-12 17:32  重返科韵路  阅读(18)  评论(0)    收藏  举报