下载资源 (都下载最新版本)
Msys2:https://www.msys2.org/
Ffmpeg:https://ffmpeg.org/download.html#build-windows
安装
Msys2 安装配置
1、下载Msys2后,一直选择 ”next”,直到安装完成。需要注意的就是安装路径要记得,默认安装在”C:\msys64”目录下。
2、运行Msys2,安装后如果没有自启动,则可到”C:\msys64”目录下,双击运行Msys.exe,如下
(疑问:该步骤完后,直接编译ffmpeg是(修改错误一)可编译通过并且可以使用(依赖msys-2.0.dll),但只能编译64位lib\dll,而且第二次在编译时便编译失败)
3、执行pacman -Syu 指令安装相应组件,如提示 [Y/n]? 需要选择Y;如过程中提示部分报无法下载,或者终端自动退出(重新运行Msys2.exe),需要重新执行pacman -Syu,直到,直到所有组件安装完成,如下图
4、执行如下命令安装所需依赖包 如过程中出现提示有部分包无法安装时,仍需要重新执行相同指令
pacman -S make diffutils yasm nasm mingw-w64-x86_64-gcc mingw-w64-i686-gcc mingw-w64-x86_64-gtk3 mingw-w64-i686-gtk3 pkg-config git
编译
1、将ffmpeg 源码放到”C:\msys64\opt”目录下或者其他目录下
2、执行cmd,跳转到 “C:\msys64” 并执行(如编译64位动态库时 参数为 -mingw64)
c:\msys64\msys2_shell.cmd -mingw32
将ffbuild.sh复制到ffmpeg 源码路径下,并赋予执行权限 (chmod -x ffbuild.sh)
编译64位动态库 (编译64位动态库 $ ./ffbuild.sh 32)
$ ./ffbuild.sh 64
在当前目录下编译结果如下:
ffmpeg 编译脚本ffbuild.sh
#!/bin/bashPKG_CONFIG_PATH="/usr/local/lib/pkgconfig"PREFIX="./bin-$1"echo "Install dir: $PREFIX"./configure \--prefix=$PREFIX \--extra-ldsoflags="-static-libgcc" \--extra-cflags="-I/usr/local/include" \--extra-ldflags="-L/usr/local/lib" \--disable-iconv \--disable-doc \--disable-debug \--disable-indevs \--disable-outdevs \--disable-postproc \--disable-ffplay \--disable-ffprobe \--disable-encoders \--disable-decoders \--enable-avdevice \--enable-small \--enable-shared \--enable-ffmpeg \--enable-version3 \--enable-nonfree \--enable-w32threads \--enable-avcodec \--enable-avformat \--enable-swresample \--enable-swscale \--enable-avfilter \--enable-gpl \--disable-amf \--disable-x86asm make cleanmake -j6 #改成你的CPU核心数make install
错误一
解决:
WEOF 在 <wctype.h> 和 头文件中都有定义,它们的含义是相同的。