关于 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 同理。

浙公网安备 33010602011771号