需要更多色彩的
不是代码,而是生活

Windows10下用msys2编译ffmpeg并集成libx264,libx265,libfdk_aac

之所以自己编译ffmpeg,是因为内置的aac编码器实在太渣,128k勉强能用,再低了就失真太严重了,而且不支持he-aac,所以必须采用fdkaac,自己编译集成fdkaac的ffmpeg。

一、准备编译环境

1.安装msys2,网址:http://www.msys2.org/ ,我要编译64位,所以下载64位版本。下载完后直接安装就可以了。

2.配置pacman中科大和清华的镜像源。不配置的话pacman不仅下载速度慢,甚至有些包直接下载不下来,中科大和清华可以二选一,或使用其它可用的镜像源也可以。

编辑 msys2安装位置/etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

添加后的文件内容如下:

##
## 32-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/

编辑 msys2安装位置/etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

添加后的文件内容如下:

##
## 64-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/

编辑 msys2安装位置/etc/pacman.d/mmirrorlist.msys ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

添加后的文件内容如下:

##
## MSYS2 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/

3.更新系统核心和各种包

打开msys2,运行命令pacman -Syu,更新系统核心组件和各种包,如下图:

输入“Y”键开始更新。
注意: 更新时可能会遇到下图的警告,这时一定要点击右上角的“X”来关闭窗口。

点击“X”关闭窗口后出现一个弹窗,如下图,点击“OK”

上面的更新没有结束,需要继续更新。再次打开msys2.exe,再执行一次pacman -Syu

 

输入“Y”等待更新完成。

4.安装各种依赖

(1) 安装基本工具,命令:pacman -S base-devel(默认全部安装)

 

(2)安装编译工具,包括gcc,make等,命令:pacman -S mingw-w64-x86_64-toolchain(默认全部安装)

(3)安装汇编,cmake,SDL,命令:pacman -S yasm nasm mingw-w64-x86_64-cmake mingw-w64-x86_64-SDL2

(4)替换"msys2安装目录/mingw64/bin/cmake-gui.exe",编译x265的时候会用到,但是这个cmake-gui.exe会依赖qt的动态库,这里我们并没有安装qt,需要换成官方下载的cmake-gui.exe,这个不需要依赖qt动态库,网站 https://cmake.org/download/ ,下载相同版本的替换掉内置的这个即可。

至此,编译环境配置完成。

二、下载源代码

ffmpeg git clone https://github.com/FFmpeg/FFmpeg.git

x264 git clone https://github.com/mirror/x264.git

x265 git clone https://github.com/videolan/x265.git

fdkaac git clone https://github.com/mstorsjo/fdk-aac.git

代码目录如下所示

三、编译x264

1.配置。打开“mingw64.exe”,cd到x264源码目录,执行命令 ./configure --enable-static,默认是不会生成静态链接库的,加参数--enable-static来生成静态链接库。

2.编译。make -j4,我这机器有4个核心,所以加了-j4参数加快编译。

3.安装。make install

四、编译x265

1.修改x265默认安装位置。修改x265源码目录/build/msys/make-Makefiles.sh文件,将“cmake -G "MSYS Makefiles" ../../source && cmake-gui ../../source”改为“cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local ../../source && cmake-gui ../../source”

内容如下所示:

#!/bin/sh
# Run this from within an MSYS bash shell
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local ../../source && cmake-gui ../../source

2.执行脚本‘./make-Makefiles.sh’,过一会弹出cmake配置界面,如下图:

依次点击“Configure”,"Generate",然后关闭,回到命令行窗口。

3.编译。make -j4

4.安装。make install

五、编译fdkaac

1.生成配置文件。cd到fdkaac源码目录,执行命令autogen.sh

2.配置。,执行命令 ./configure

3.编译。make -j4

4.安装。make install

六、编译ffmpeg

1.修改pkgconfig环境变量

执行命令export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig":$PKG_CONFIG_PATH

2.配置。cd到ffmpeg源码目录,./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-libx265 --enable-libfdk-aac --extra-cflags=-I/usr/local/include --extra-ldflags="-L/usr/local/lib -static" --pkg-config-flags="--static"。

3.编译。make -j4。在ffmpeg源码目录下会生成ffmpeg.exe。可以编码一个视频文件测试一下编译结果。

赞(2) 打赏
未经允许不得转载:代码一线 » Windows10下用msys2编译ffmpeg并集成libx264,libx265,libfdk_aac
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就支持一下本站

支付宝扫一扫打赏

微信扫一扫打赏