windows 下面编译ffmpeg真可谓折腾,网上资料大多是使用mingw+msys,mingw用来生成32位程序,它的内部集成了msys,下载地址:?Welcome to MinGW.OSDN,下载并安装即可(安装时加上msys组件),如下图:
2. 如果要编译x64位的ffmpeg,得用mingw64,但mingw64没有集成msys,需要手动搭建mingw64和msys的编译环境,比较费劲。
msys2集成了mingw x86 和 mingw x64,就可以比较方便地切换编译环境。
msys2官方网站下载安装包:?MSYS2
也可以直接去清华大学软件站上下载安装,并根据其说明添加软件包镜像源:?msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
msys2安装完成后,在cmd里面执行:C:/msys64/msys2_shell.cmd -mingw64(默认安装在C:/msys64路径下),打开64位编译环境。或者直接在开始菜单栏打开 MSYS2 MinGW x64。
打开这个编译环境之后,可以发现这个环境都是空的,连gcc也没有,因此需要安装编译工具:
pacman -Su
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel
pacman -S yasm
# 如果需要编译出ffplayer.exe的话,应该还需要安装SDL(可以选择不生成ffplayer.exe)
pacman -S mingw-w64-x86_64-SDL2
编译工具装好之后,开始尝试编译ffmpeg,期间缺少什么库,就安装什么库(源码编译安装,或者pacman工具安装),一般可以成功。
mkdir install_dir
cd ffmpeg
./configure --prefix=../install_dir --disable-static --enable-shared --disable-ffplay --enable-ffmpeg --disable-x86asm
make -j8
make install
有一个问题,使用msys2编译动态库的时候,有些mingw内部的dll库没有被编译进去,所以脱离了这个编译环境使用会报缺少dll, 一般在C:\msys64\mingw64\bin或者C:\msys64\mingw32\bin下面就能找到这些dll,将它们拷贝到.exe可执行文件同目录下,就可以正常使用了。
|