參考內容:
[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