在Windows上编译FFmpeg可以使用MSYS2或Cygwin来配置编译环境,然后使用MinGW或Visual Studio等工具进行编译。下面是使用MSYS2和MinGW的步骤:
-
下载并安装MSYS2:https://www.msys2.org/
-
打开MSYS2终端,更新软件包列表:
pacman -Syu
- 安装编译工具链和依赖库:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain pacman -S git perl yasm pkg-config pacman -S libx264 libx265 libvpx libopus libmp3lame libfdk-aac
- 克隆FFmpeg源代码并切换到最新稳定版本:
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg git checkout n4.4
- 配置编译参数:
./configure --toolchain=mingw64 --arch=x86_64 --enable-shared --disable-static --prefix=/usr/local --disable-debug --enable-pic --enable-gpl --enable-version3 --enable-nonfree --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --pkg-config-flags=--static
这里的参数意义如下:
-
--toolchain=mingw64
:使用MinGW编译工具链。 -
--arch=x86_64
:编译为64位程序。 -
--enable-shared
:生成共享库。 -
--disable-static
:禁用静态库。 -
--prefix=/usr/local
:指定安装路径。 -
--disable-debug
:禁用调试。 -
--enable-pic
:启用位置独立代码。 -
--enable-gpl
:启用GPL许可证。 -
--enable-version3
:启用LGPLv3许可证。 -
--enable-nonfree
:启用非自由软件。 -
--disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages
:禁止生成文档。 -
--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
:添加头文件和库文件路径。 -
--pkg-config-flags=--static
:使用静态链接的pkg-config。 -
编译并安装:
make -j$(nproc) make install
-j$(nproc)
参数是使用CPU核心数进行多线程编译,可以加快编译速度。
- FFmpeg的头文件和库文件将被安装到/usr/local/include和/usr/local/lib中,可以在自己的项目中使用它们。
注意事项:
-
如果需要编码H.264或H.265视频,需要安装x264和x265依赖库。
-
如果需要编解码VP8或VP9视频,需要安装libvpx依赖库。
-
如果需要编码Opus音频,需要安装libopus依赖库。
-
如果需要编码MP3音频,需要安装libmp3lame依赖库。
-
如果需要编码AAC音频,可以使用libfdk-aac或libvo-aacenc依赖库。
★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓