VMAF 的全称是 Video Multi-Method Assessment Fusion,它是由 Netflix 所推出的一款视频质量比较分析工具,即以原视频为标准对受损视频进行画质打分。
其实市面上已有的视频质量分析工具已经有不少了,像 SSIM 和 PSNR 都是非常成熟的评价指标,那么为什么 Netflix 还要重复造轮子呢?原因很简单,这些基于数学模型的标准往往不能很好的反应真实观感的体验情况。
以上面的四帧画面为例,上面两幅的 PSNR 分值都是 31dB 左右,而下面两幅都是 34 dB 左右。但从主观观感上来说,狐狸画面相比于人群画面的画质损失更为严重。
所以作为视频流媒体公司的 Netflix 弄出这么一套标准也就不意外了。相比于目前广泛被采用的纯数学模型评价方法,VMAF 采用了机器学习的方式对视频质量进行视觉上的评价。
由于 VMAF 已经被集成到 ffmpeg 中,所以使用起来也非常简单,只需要下载两个训练模型到 ffmpeg 的同级目录即可。
下载地址:https://github.com/Netflix/vmaf/tree/master/model
将以下文件放置在 ffmpeg 的同级目录:
- vmaf_4k_v0.6.1.pkl
- vmaf_4k_v0.6.1.pkl.model
- vmaf_v0.6.1.pkl
- vmaf_v0.6.1.pkl.model
随后通过命令行运行 ffmpeg:
ffmpeg.exe -i x:\target.mp4 -i x:\source.mp4 -lavfi libvmaf="model_path=vmaf_v0.6.1.pkl:log_path=VMAF.txt" -report -f null -
其中,target.mp4 为受损的视频,source.mp4 为原视频。如果是对 1080P 及以下分辨率视频进行质量分析,使用模型 vmaf_v0.6.1.pkl 即可。而对于 4K 视频,则推荐使用模型 vmaf_4k_v0.6.1.pkl。
更加具体的来说,默认模型给出的评价基于给定的视频在类似客厅的环境中,在3倍屏幕高度距离观看 1080P 分辨率电视上播放的效果。而 4K 模型则是在1.5倍屏幕高度的距离,观看 4K 电视上播放的效果。
在分析完成后 ffmpeg 会给出最终的 VMAF 成绩,通常来说95分以上意味着肉眼极难分辨出差异,93-95分能够感知到细微的差异但完全可以接受,而低于91分时通常差异较为明显。
在 ffmpeg 同级目录下的 VMAF.txt 则记录了逐帧分析的 VMAF 成绩。
说起来有点奇怪,为什么我看以前的游戏和电影,最直观的感受往往是画面特别阴暗?就好像那时候的世界是否没有颜色,所以地球人都习惯了那种配色。
可能是那一个时代的特色吧
楼主,请问你使用的是哪个版本的ffmpeg,我ffmpeg4.4按你的方法跑的时候报错了。能麻烦提供集成vmaf的ffmpeg的链接吗?多谢了。
官网的 gyan.dev 的就可以