Windows编译x264、ffmpeg及vmaf

文章介绍

本文主要介绍在windows上编译音视频所需要的开源库,包括x264,ffmpeg和vmaf。
本文编译所使用配置:
os : win10 x64
vs : 2019
其他版本可以参考。

环境准备

ffmpeg是基于linux开发的,需要gc++来编译,windows平台下是MSVC++(Microsoft Visual C++),所以暂不支持直接编译,需要搭建类Linux的环境,用gc++来编译,环境搭建需要下载MSYS2。

下载安装MSYS2:

  • 官网下载64位安装包
  • 安装目录自己选择,本文安装目录为:D:\soft_install\msys2 (注意后边路径设置需要用自己的安装目录
  • 编辑安装目录下的msys2_shell.cmd 文件,将rem MSYS2_PATH_TYPE=inherit 这一行的 rem 移除。
    去掉rem
  • 运行 msys2_shell.cmd
  • 在shell中依次输入命令:
pacman -Syu
#(中间会退出一次,重启继续执行这条命令)
pacman -S make
pacman -S diffutils
pacman -S nasm
mv /usr/bin/link.exe /usr/bin/link.exe.bak 
#(上边这句是重命名link.exe,目的是避免与MSVC的link.exe冲突)

#编译vmaf需要
pacman -S --noconfirm --needed mingw-w64-x86_64-nasm  mingw-w64-x86_64-meson


这篇文章中提到有两种方式可以编译:msys或者MinGW-w64,本文使用msys版本(亲测并没有题主所说的依赖msys-2.0.dll)进行编译。

编译x264

  1. 获得h264源码:
    获得源码有两种方式:1)直接下载压缩包;2)用git下载
    1.1)H264官网下载,下载之后解压就可以:
    在这里插入图片描述
    1.2)使用git下载源码
#安装git
pacman -S git

#源码路径,更改为自己的路径
cd f:/encode_test_project

#clone代码
git clone https://code.videolan.org/videolan/x264.git

cd x264
#切换到stable分支,也可以直接用master分支
git checkout -b stable remotes/origin/stable

使用git的一个好处是当源码有新的提交时可以用命令行更新代码及切换分支

  1. 配置脚本文件:
curl "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" > config.guess
sed -i 's/host_os = mingw/host_os = msys/' configure
  1. 编译X264:
    3.1 打开 x64 Native Tools Command Prompt for VS2019(适用于 VS 2017 的 x64 本机工具命令提示)
    本地工具命令
    3.2 进入到MSYS的安装目录
    3.3 运行msys2_shell.cmd
    编译
    注意跨盘需要添加 /d 选项
    然后在MSYS中运行:
cd f:/encode_test_project
mkdir -p build/x264
cd build/x264
#注意下面配置路径与自己相符
CC=cl ./../../x264/configure --prefix=./../../installed --enable-shared --enable-static
make -j 8
make install
mv ./../../installed/lib/libx264.dll.lib ./../../installed/lib/libx264.lib

编译ffmpeg

  1. 获得ffmpeg源码:
    同x264
    1.1)ffmpeg官网下载,下载之后解压就可以:
    在这里插入图片描述
    1.2)使用git下载源码
#源码路径,更改为自己的路径
cd f:/encode_test_project
#clone代码
git clone https://git.ffmpeg.org/ffmpeg.git

cd ffmpeg
#切换到4.4分支,也可以直接用master分支
git checkout -b release/4.4  remotes/origin/release/4.4
  1. 编译ffmpeg
    同x264
    2.1打开 x64 Native Tools Command Prompt for VS2019(适用于 VS 2017 的 x64 本机工具命令提示)
    2.2 进入到MSYS的安装目录
    2.3 运行msys2_shell.cmd
    在打开的shell中运行下列:
cd f:/encode_test_project
mkdir -p build/ffmpeg
cd build/ffmpeg
#注意路径
CC=cl ./../../ffmpeg/configure \
             --prefix=./../../installed \
             --toolchain=msvc \
             --arch=x86_64 \
             --enable-x86asm  \
             --enable-asm \
             --enable-shared \
             --enable-static \
             --disable-programs \
             --enable-avresample \
             --enable-libx264 \
             --enable-w32threads \
             --enable-gpl \
             --extra-ldflags="-LIBPATH:./../../installed/lib/" \
             --extra-cflags="-I./../../installed/include/"

make V=1 -j 8
make install

最后生成的lib和dll 都在installed/lib 里面了

编译vmaf

  1. 获得vmaf源码:
    vmaf 的源码在github上: https://github.com/Netflix/vmaf,
    1.1)vmaf官网下载,下载之后解压就可以:
    vmaf下载
    1.2)使用git下载源码
#源码路径,更改为自己的路径
cd f:/encode_test_project
#clone代码
git clone https://github.com/Netflix/vmaf.git

cd vmaf
#切换到2.1.1分支,也可以直接用master分支
git checkout -b branch_v2.1.1  v2.1.1
  1. 编译vmaf
    2.1 进入到MSYS的安装目录
    2.2 运行mingw64.exe
    在打开的shell中运行下列:
cd f:/encode_test_project
cd vmaf
#注意路径
meson setup libvmaf libvmaf/build --buildtype release --default-library both --prefix  f:/encode_test_project/installed

meson install -C libvmaf/build

这种方式是官方推荐的方式,但是只能生成dll文件,没有生成lib文件,也许是设置不对,欢迎在评论区讨论。自定义开发的话只能动态调用dll文件了。

到这一步就完成了x264,ffmpeg和vmaf了,头文件在installed/include里面,生成的lib和dll在installed/lib 里面。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值