Msys2+FFmpeg编译
下载资源,都下载最新版本
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” 并执行“c:\msys64\msys2_shell.cmd -mingw32”(如编译64位动态库时 参数为 -mingw64)
将ffbuild.sh复制到ffmpeg 源码路径下,并赋予执行权限 (chmod -x ffbuild.sh)
编译32位动态库
$ ./ffbuild.sh 32 //---($ ./ffbuild.sh 64)
在当前目录下编译结果如下:
ffmpeg 编译脚本ffbuild.sh (如需要编码等其他模块,自行下载资源并编辑编译脚本)
#!/bin/bash
PKG_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 clean
make -j4
make install
如需编译好的动态库(内有vs2019+FFmpeg demo)
https://download.csdn.net/download/kingsenye/13692787
错误一
解决:
WEOF 在 <wctype.h> 和 <wchar.h> 头文件中都有定义,它们的含义是相同的。