在window下代建编译环境的情况下,我们开始着手下载编译ffmpeg以及相对应的库,我将我本人安装的过程以及碰到的问题进行一个记录,方便日后查看以及与在同在音视频学习路上的同志一个分享。
还没有安装好编译环境的可以参考我的另一篇介绍搭建编译环境的博客:
window下编译ffmpeg--安装msys2:https://blog.csdn.net/tanziliang98/article/details/122401214
一:准备工作
1:重命名link.exe
重命名 msys64/usr/bin/link.exe 为 msys64/usr/bin/link.bak , 避免和MSVC 的link.exe抵
触。
2.启动命令⾏窗⼝,在窗⼝中输⼊:
#进⼊msys2安装⽬录
D:
cd D:\msys64
#如果要打开msys2的mingw64窗⼝
msys2_shell.cmd -mingw64 6
#如果要打开msys2的msys窗⼝ 7
#msys2_shell.cmd
3.下载和安装YASM
pacman -S yasm
4.检查编译环境⼯具
mingw64的shell窗⼝输⼊:
which cl link yasm cpp
看返回结果,没有no的结果⼀般就没问题。
5.修改⽀持中⽂显示
窗⼝右键->Options->Text,然后locale选择:zh_CN,Character set 选择 UTF-8。
6.安装nasm
pacman -S nasm
二:编译第三方库
1:下载编译x64
1.1.MinGW-w64版本下载x264
将下载下的放置于/home/96358/ffmpeg,把第三⽅库编译的库⽂件放在 /home/96358/ffmpeg/build
git clone https://gitee.com/mirrors_addons/x264.git
注意:在下载库文件时,可能因为网站会出现下载不了的现象,这个时候考虑将https更换成git
git clone git://gitee.com/mirrors_addons/x264.git
1.2:对x264配置安装
cd 进入x264目录:
cd x264
./configure --prefix=/home/96358/ffmpeg/build/libx264 --host=x86_64-w64-mingw32 --enable-static --extra-ldflags=-Wl,--output-def= libx264.def
make
make install
1.3:生成libx64
上⾯编译出来的结果没有包含lib⽂件,需要⾃⼰⼿⼯⽣成。configure时我们⽣成了 libx264.def 此时就派上⽤场。
cp ./libx264.def /home/96358/ffmpeg/build/libx264/lib/
cd /home/96358/ffmpeg/build/libx264/lib
#若要⽣成64位lib⽂件则输⼊如下命令:
lib /machine:X64 /def:libx264.def
#若要⽣成32位lib⽂件则输⼊如下命令:
#lib /machine:i386 /def:libx264.def
即得到 libx264 .lib
2:下载编译fdk-acc
2.1:下载fdk-acc
git clone --depth 1 https://gitee.com/mirrors/fdk-aac.git
注意:
使用该命令访问不到网页时,可以尝试将https改成git。
2.2:编译、安装fdk-acc
进入fdk-acc目录
cd fdk-acc
#配置
./autogen.sh
./configure --prefix=/home/96358/ffmpeg/build/libfdk-aac --enable-static --enable-shared
#编译
make -j4
#安装
make install
进入对应目录查看是否安装成功:/home/96358/ffmpeg/build/
3:下载编译MP3(libmp3lame)
3.1:下载
git clone --depth 1 https://gitee.com/hqiu/lame.git
3.2:进入目录配置安装
cd lame
./configure --prefix=/home/96358/ffmpeg//build/libmp3lame --disable-shared --disable- frontend --enable-static
make
make install
4:下载编译libvpx
4.1:下载
git clone --depth 1 https://github.com/webmproject/libvpx.git
4.3:配置编译安装
cd libvpx
./configure --prefix=/home/96358/ffmpeg/build/libvpx --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make -j4
make install
5:下载编译ffmpeg
5.1:下载ffmpeg
#码云连接
git clone https://gitee.com/mirrors/ffmpeg.git
cd ffmpeg
#查看版本
git branch -a
#选择4.2版本
git checkout remotes/origin/release/4.2
5.2:编译ffmpeg
创建⼀个build.sh
将下载好的ffmpeg与x264放在⼀个⽬录下,本⼈是/home/96358/ffmpeg。
./configure \
--prefix=/home/96358/ffmpeg/build/ffmepg-4.2 \
--arch=x86_64 \
--enable-shared \
--enable-gpl \
--enable-libfdk-aac \
--enable-nonfree \
--enable-libvpx \
--enable-libx264 \
--enable-libmp3lame \
--extra-cflags="-I/home/96358/ffmpeg/build/libfdk-aac/include" \
--extra-ldflags="-L/home/96358/ffmpeg/build/libfdk-aac/lib" \
--extra-cflags="-I/home/96358/ffmpeg/build/libvpx/include" \
--extra-ldflags="-L/home/96358/ffmpeg/build/libvpx/lib" \
--extra-cflags="-I/home/96358/ffmpeg/build/libx264/include" \
--extra-ldflags="-L/home/96358/ffmpeg/build/libx264/lib" \
--extra-cflags="-I/home/96358/ffmpeg/build/libmp3lame/include" \
--extra-ldflags="-L/home/96358/ffmpeg/build/libmp3lame/lib"
在下载好的ffmpeg目录执行脚本配置:
sh build_ffmpeg.sh
注意:在执行这里是可能会由于脚本问题、文件不存在出现错误:
再次脚本符号之间连接是否正确,每个文件在对应的目录是否存在。
正确配置后:
5.3:编译安装
make
make install
安装之后进入ffmpeg的bin目录查看:
如果安装成功,拷贝一个MP4文件到bin目录,执行:
ffplay.exe believe.mp4 -x 480 -y 500
可以得到:
mp4文件正常播放即表示ffmpeg以安装完毕。