FFmpeg使用libvmaf交叉评估笔记

作者: 团不慌 | 来源:发表于2018-12-19 17:44 被阅读2次

参考内容:

  1. VMAF项目地址
  2. Windows FFmpeg自动编译脚本仓库
  3. CSDN - VMAF笔记

1 VMAF简介

常见视频质量评估方法,图源见水印

VMAF (Visual Multimethod Assessment Fusion - 视频质量多方法评价融合) 是由Netflix公司开发的一套主观视频质量评价体系,通过引入深度学习机制,对视频进行更符合人眼视觉的质量评分。

2 使用方法

2.1 直接使用
Usage: vmafossexec fmt width height ref_path dis_path model_path 
[--log log_path] [--log-fmt log_fmt] [--thread n_thread] [--subsample n_subsample] 
[--disable-clip] [--disable-avx] [--psnr] [--ssim] [--ms-ssim] [--phone-model] [--ci]
fmt:
        yuv420p
        yuv422p
        yuv444p
        yuv420p10le
        yuv422p10le
        yuv444p10le

log_fmt:
        xml (default)
        json

n_thread:
        maximum threads to use (default 0 - use all threads)

n_subsample:
        n indicates computing on one of every n frames (default 1)

示例:

$ vmafossexec yuv420p 1920 1080 recon.yuv comp.yuv vmaf_v0.6.1.pkl
2.2 FFmpeg filter

FFmpeg中已经支持libvmaf作为filter进行处理,但需要单独进行配置
安装
在Linux下只需下载vmaf源码直接make install,然后使用配置./configure --enable-version3 --enable-libvmaf重新编译ffmpeg即可
在Windows下需要使用Visual Studio打开.sln文件进行编译链接等,比较复杂。可以直接使用整合好的编译脚本media-autobuild_suite[2]
使用

$ ./ffmpeg \
-s 1920x1080 -i recon.yuv \
-s 1920x1080 -i comp.yuv \
-lavfi libvmaf ="model_path=/path/to/vamf/pkl" \
-f null –

P.S. 输出问题
正常情况ffmpeg会输出大量的中间信息,在调试中经常起到很大的作用。但在使用vmaf评价批处理时,多余的输出反而无用,这时候可以通过控制./ffmpeg -v log_level进行设置,比如将log_level设为0,输出将只有:

Start calculating VMAF score...
Exec FPS: 7.788159
VMAF score = 85.359323

相关文章

网友评论

    本文标题:FFmpeg使用libvmaf交叉评估笔记

    本文链接:https://www.haomeiwen.com/subject/yegdkqtx.html