一、安装编译工具
# 更换pacman源
sed -i "s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Sy
# 安装依赖
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm
pacman -S git pkg-config
说明:
base-devel:提供编译和开发软件所需的基础工具集,包含 常用的工具如 make, patch, autoconf, automake, libtool, gettext, texinfo 等mingw-w64-x86_64-toolchain:MinGW-w64 的完整工具链,用于在 Windows 上编译 64 位应用程序,包含 编译器(如 gcc, g++)、链接器、调试器(gdb)以及相关的开发库和头文件。mingw-w64-x86_64-nasm:NASM(Netwide Assembler)是一个开源的 x86 和 x86-64 汇编器。mingw-w64-x86_64-yasm:YASM 是一个模块化的汇编器,支持 x86 和 x86-64 架构,兼容 NASM 语法。git:用于从 Git 仓库下载源码(如git clone)。pkg-config:用于检索已安装库的编译和链接信息。
二、通过pacman安装依赖
2.1 常见依赖库
查询包名 网址:packages.msys2.org/queue
| 分类 | 库名称 | 用途 | FFmpeg 配置选项 | pacman 安装命令 |
|---|---|---|---|---|
| 视频编码 | libx264 |
H.264 视频编码(高效、广泛使用的视频编码标准) | --enable-libx264 |
pacman -S mingw-w64-x86_64-x264 |
libx265 |
H.265/HEVC 视频编码(高压缩率,适用于 4K/8K 视频) | --enable-libx265 |
pacman -S mingw-w64-x86_64-x265 |
|
libvpx |
VP8/VP9 视频编码(WebM 格式,适用于网络视频) | --enable-libvpx |
pacman -S mingw-w64-x86_64-libvpx |
|
libtheora |
Theora 视频编码(开源视频格式) | --enable-libtheora |
pacman -S mingw-w64-x86_64-libtheora |
|
libwebp |
WebP 图像和视频编码(高效图像压缩格式) | --enable-libwebp |
pacman -S mingw-w64-x86_64-libwebp |
|
libaom |
AV1 视频编码(下一代开源视频编码,高效压缩) | --enable-libaom |
pacman -S mingw-w64-x86_64-libaom |
|
libdav1d |
AV1 视频解码(高性能 AV1 解码器,适合播放) | --enable-libdav1d |
pacman -S mingw-w64-x86_64-dav1d |
|
libxvid |
MPEG-4 视频编码(老式但仍使用的视频编码标准) | --enable-libxvid |
pacman -S mingw-w64-x86_64-xvidcore |
|
| 音频编码 | libfdk-aac |
AAC 音频编码(高质量音频编码,支持 HE-AAC) | --enable-libfdk-aac |
pacman -S mingw-w64-x86_64-fdk-aac |
libmp3lame |
MP3 音频编码(广泛使用的音频格式) | --enable-libmp3lame |
pacman -S mingw-w64-x86_64-lame |
|
libopus |
Opus 音频编码(低延迟、高质量,适合网络传输) | --enable-libopus |
pacman -S mingw-w64-x86_64-opus |
|
libvorbis |
Vorbis 音频编码(开源音频格式,常用于 Ogg 容器) | --enable-libvorbis |
pacman -S mingw-w64-x86_64-libvorbis |
|
libspeex |
Speex 音频编码(针对语音优化的压缩格式) | --enable-libspeex |
pacman -S mingw-w64-x86_64-speex |
|
libflac |
FLAC 音频编码(无损音频压缩格式) | --enable-libflac |
pacman -S mingw-w64-x86_64-flac |
|
| 其他常用功能 | libass |
字幕渲染(支持 ASS/SSA 字幕格式) | --enable-libass |
pacman -S mingw-w64-x86_64-libass |
zlib |
数据压缩(用于压缩和解压文件或流) | --enable-zlib |
pacman -S mingw-w64-x86_64-zlib |
|
freetype |
字体渲染(用于字幕和文本绘制) | --enable-libfreetype |
pacman -S mingw-w64-x86_64-freetype |
|
fontconfig |
字体管理(优化字体选择和配置) | --enable-fontconfig |
pacman -S mingw-w64-x86_64-fontconfig |
|
openal |
音频处理(支持 3D 音频和空间音效) | --enable-openal |
pacman -S mingw-w64-x86_64-openal |
|
libsdl2 |
多媒体交互(用于 ffplay 的图形界面和音频输出) | --enable-sdl2 |
pacman -S mingw-w64-x86_64-libsdl2 |
|
openssl |
支持 HTTPS 和其他加密协议(如 RTMPS) | --enable-openssl |
pacman -S mingw-w64-x86_64-openssl |
|
librtmp |
RTMP 流媒体协议支持(用于直播推流/拉流) | --enable-librtmp |
pacman -S mingw-w64-x86_64-librtmp |
|
libpng |
PNG 图像支持(用于图像处理和帧提取) | --enable-libpng |
pacman -S mingw-w64-x86_64-libpng |
|
libjpeg-turbo |
JPEG 图像支持(加速 JPEG 编码/解码) | --enable-libjpeg |
pacman -S mingw-w64-x86_64-libjpeg-turbo |
2.2 ffmpeg编译安装
最小化配置:x264、x265、fdk-aac 和 lame
安装依赖:
pacman -S mingw-w64-x86_64-x264 mingw-w64-x86_64-x265 mingw-w64-x86_64-fdk-aac mingw-w64-x86_64-lame
ffmpeg 4.4.1 编译:
wget https://ffmpeg.org/releases/ffmpeg-4.4.1.tar.xz
tar xf ffmpeg-4.4.1.tar.xz && cd ffmpeg-4.4.1
./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--disable-doc \
--enable-shared \
--enable-muxer=mp4,flv,mp3,wav \
--enable-demuxer=mp4,mov,mp3,aac \
--enable-encoder=libx264,libx265,libfdk_aac,libmp3lame \
--enable-decoder=aac,h264,hevc,mp3 \
--enable-protocol=file,http \
--enable-filter=aresample \
--enable-bsf=aac_adtstoasc \
--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--enable-libx265 \
--enable-libfdk-aac \
--enable-libmp3la

最低0.47元/天 解锁文章
2120

被折叠的 条评论
为什么被折叠?



