目标
在 Windows 10 上使用 MSYS2 编译 FFmpeg,并支持 WAV、MP3、AAC、AMR、WMA、AIFF、AIF、AC3、M4A、MP4、MOV、AVI、MXF、WEBM 等格式的处理,通常需要配置一些特定的库支持。这些库包括音频编解码器(如 libmp3lame、libfdk_aac)和视频编解码器(如 libx264、libvpx)。
编译环境
- 安装“MSYS2”
https://www.msys2.org/ - 打开MSYS2安装编译环境
确保在 MINGW64 环境中工作是关键
- 执行命令行
pacman -Syu
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S base-devel \
nasm \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-ffmpeg \
mingw-w64-x86_64-lame \
mingw-w64-x86_64-fdk-aac \
mingw-w64-x86_64-openssl \
mingw-w64-x86_64-libvorbis \
mingw-w64-x86_64-libwebp \
mingw-w64-x86_64-libogg \
mingw-w64-x86_64-x264 \
mingw-w64-x86_64-x265 \
mingw-w64-x86_64-libvpx \
mingw-w64-x86_64-gnutls \
mingw-w64-x86_64-opus \
mingw-w64-x86_64-opencore-amrnb \
mingw-w64-x86_64-opencore-amrwb \
mingw-w64-x86_64-libxvid \
mingw-w64-x86_64-libfreetype \
mingw-w64-x86_64-libass \
mingw-w64-x86_64-pkg-config \
mingw-w64-x86_64-libmfx \
mingw-w64-x86_64-libfontconfig \
mingw-w64-x86_64-libopenjpeg \
mingw-w64-x86_64-libpulse \
mingw-w64-x86_64-aribb24 \
mingw-w64-x86_64-pulseaudio
- MSYS2设置环境变量
find /mingw64 -name "libass.pc"
# 假设你找到的 libass.pc 文件路径是 /mingw64/lib/pkgconfig/libass.pc,你需要告诉 pkg-config 查找这个路径
export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig:$PKG_CONFIG_PATH
源码下载
-
下载ffmpeg源码
https://ffmpeg.org/download.html
-
解压源码至本地
-
MSYS2安装完环境后进入ffmpeg源码文件夹
cd /d/environment/ffmpeg-7.1.1
win路径:
MSYS2执行命令
开始编译
–prefix= :指定安装目录
./configure --prefix=/d/environment/ffmpeg \
--enable-gpl \
--enable-nonfree \
--enable-libmp3lame \
--enable-libfdk-aac \
--enable-libopus \
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-libmfx \
--enable-libass \
--enable-libvorbis \
--enable-libwebp \
--enable-libopenjpeg \
--enable-libtheora \
--enable-shared \
--enable-pic \
--enable-libxvid \
--enable-libaribb24 \
--enable-libpulse \
--enable-libfreetype \
--enable-libfontconfig \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-version3
出现这个表示配置正确
然后执行如下命令
make
make install
若重新安装可以清除配置
make clean :移除大部分编译生成的文件,但会保留配置文件(比如 config.user),以便下次快速编译。
make distclean :移除所有与编译相关的文件,包括配置文件。这使得源目录回到初始状态,相当于您刚刚下载源代码的样子。
make clean
make distclean
失败查看日志文件
编译失败,可在源码目录中建议查看 ffbuild/config.log 文件,该日志文件会详细记录配置过程中出现的错误,可能会提供更具体的解决方案。
验证安装
在配置完成后,可以在 MSYS2 窗口中运行以下命令来验证 FFmpeg 是否成功安装以及支持的格式:
ffmpeg -version
ffmpeg -formats
验证支持的格式,运行以下命令来验证 FFmpeg 是否已成功支持 AMR 格式:
ffmpeg -codecs | grep amr
完成安装配置
将MSYS64目录(如D:\Programs\msys64\mingw64\bin)文件夹bin中的.ddl文件全部复制到安装目录如"ffmpeg/bin"中
配置windows环境变量
将安装目录"ffmpeg/bin"添加到windows系统环境变量path下
音频转换注意事项
- 其他格式转amr时,仅支持单声道且8000HZ采样率的文件转amr,否则会失败报错