VMAF的两种使用方法
找了好几天资料,发现网上许多资料不太全面,在使用的时候还是会出现许多问题。
这里把我最后的解决方法记录一下。
ffmpeg版:
每个序列前-s 分辨率 是因为输入为.yuv的时候必须这样加,否则会报错。
第二个视频序列为Reference序列。
-lavfi ‘’ 冒号里是一些参数是关于VMAF滤波器的,详细可以参考ffmpeg libvmaf Documents。
.
-psnr=1 表示计算PSNR
-ssim=1 表示计算SSIM
-ms:ssim=1 表示计算MS-SSIM
-log_path=vmaf_BQMall_QP32.log 表示生成的VMAF日志,其中包含了计算得出的总体指标以及每一帧的指标
-model_path=‘vmaf_v0.6.1.pkl’ 表示使用的VMAF模型为vmaf_v0.6.1
注意VMAF模型 .pkl 需和对应的 .pkl.model 文件在一起(没有的话可以去下面的Netflix的Github代码那里下载)
【注意!!!】 新版本的ffmpeg已经弃用.model格式的模型,转而使用.json格式的模型,【目前已知ffmpeg4.4已经不能使用model】要在较新版本使用vmaf只需将’xxx.model’改为’xxx.json’即可。
随着ffmpeg版本的更新,我之前提供的样板命令可能已经无法运行,现提供一条尚可运行的cmd命令,若无法运行建议参考上述ffmpeg libvmaf documents
ffmpeg -s 2048x2048 -i distorted.yuv -s 2048x2048 -i reference.yuv -lavfi "libvmaf=model=version=vmaf_v0.6.1:log_fmt=csv:feature='name=psnr':log_path=BounceBall_vmaf.csv" -f null -
pause
Netfilx VMAF Github版(Release 1.3.4)
注意Github里一些较新的版本是需要meson+ninja编译的,如果是要用VisualStudio生成的话建议使用一些特定的版本,我下载Release 1.3.1时候是有问题的。
这里提到了一些关于Win系统下的一些讨论
下载了Release 1.3.4后,从里面找到sln文件,然后用VS生成 vmafossexec .exe,然后可用此exe计算VMAF及相关指标
vmafossexec yuv420p 832 480 C:\Users\Username\Desktop\VVCx7Test\480P\BQMall_832x480_60.yuv vmaf_v0.6.1.pkl --psnr --ssim --log BQMall_QPXX_vmaf0.6.1.log