使用的时候最好关闭杀毒软件,否则configure和make会很慢
window编译ffmpeg mingw,要在windows搭建一个模拟linux环境,下载安装MSYS2-64, 网址:https://www.msys2.org/
我这里安装在了默认的路径
在这里插入图片描述安装完成后,将Qt的mingw32的库全部转移过来(直接拷贝就可以)
在这里插入图片描述拷贝完成后,运行mingw32.exe
在这里插入图片描述更新包数据块和系统核心包

pacman -S make yasm diffutils pkg-config

pacman -S nasm

修改etc下的fstab
c:/msys64/mingw32/ /mingw
在这里插入图片描述
然后启动mingw32.exe
写一个helloword的小程序测试一下
在这里插入图片描述
可以看到有输出,证明可以使用

gcc -v

在这里插入图片描述
证明可以使用

但是编译x264的时候出现了 No working C compiler found的错误,有可能是X264版本太高的问题,
这里换到了2015的一个版本后成功编译
在这里插入图片描述

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static --enable-pic --disable-cli

可以在下面这个网址下载x264

http://download.videolan.org/x264/snapshots/

在./cofigure时可能出现

 line ***:tr:command not found
    line ***:uname:command not found
    line ***:cat:command not found

解决办法:安装coreutils,在安装目录的bin目录下将缺少的命令的exe和libintl3.dll,libiconv2.dll 文件拷贝到C:MinGW/msys/1.0/bin目录下

warning:pkg-config not found, library detection may fail

解决办法:下载pkg-config-0.23-2.zip及glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

把pkg-config.exe 和 glib_2.18.4-1_win32.zip中的libglib-2.0-0.dll放在mingw的bin目录下,或者放在$path目录下.
在这里插入图片描述
然后make && make install
在这里插入图片描述
x264这个文件夹是我自己创建的,将include和lib放了进去,方便后面编译ffmpeg

编译SDL

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static
make && make install

在这里插入图片描述
跟x264一样创建一个sdl文件夹,将include和lib放进去
编译libfdkaac
下载:https://sourceforge.net/projects/opencore-amr/files/fdk-aac/

./configure --host=i686-w64-mingw32 --prefix=$(pwd)/install --enable-shared --enable-static
make && make install

编译ffmpeg

./configure --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm
./configure --arch=x86_32 --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm
 ./configure --arch=x86_32 --prefix=$(pwd)/install/ --enable-shared --enable-static --enable-gpl --enable-libx264 --extra-cflags=-I$(pwd)/x264/include --extra-ldflags=-L$(pwd)/x264/lib --enable-sdl2 --extra-cflags=-I$(pwd)/sdl/include --extra-ldflags=-L$(pwd)/sdl/lib --enable-libfdk_aac --extra-cflags=-I$(pwd)/fdkaac/include --extra-ldflags=-L$(pwd)/fdkaac/lib --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-swscale --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --disable-x86asm

遇到这个错误

ERROR: sdl2 requested but not found

修改configure

6170   if enabled sdl2; then
6171       #SDL2_CONFIG="${cross_prefix}sdl2-config"
6172  		  SDL2_CONFIG="d:/project/SDL-release-2.0.12/sdl2-config"  #交叉编译sdl2目录

然后重新configure
成功后make && make install

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐