VMAF

出自Gea-Suan Lin's Wiki
於 2021年11月20日 (六) 10:04 由 Gslin留言 | 貢獻 所做的修訂 →‎執行
跳至導覽 跳至搜尋

VMAF英語:Video Multimethod Assessment Fusion)是Netflix所設計出來,希望能自動化評量影片檔案品質的演算法。

安裝

這邊主要是描述Ubuntu 20.04下安裝VMAF的Python套件的方式,目標是希望盡可能裝的「乾淨」一點。

所以我們會先利用pyenv安裝自己的Python環境(避免使用系統的Python),這邊要注意Python 3.10.0可能會遇到一些Python module裝不起來的問題,我們這邊會使用Python 3.9.9。

接著安裝需要的相依套件:

sudo apt install -y build-essential gfortran libblas-dev liblapack-dev libsvm-dev meson nasm

然後就可以把Git repository抓下來安裝了:

git clone https://github.com/Netflix/vmaf.git; cd vmaf; make; cd python; make; pip install -U -r requirements.txt; python3 setup.py install

最後因為不想要自己編執行檔,需要把官方預先編好的執行檔vmaf放進對應的位置(要注意這是x86_64版本),這邊用的是pyenv的位置:

export PYTHON_VERSION=3.9.9; mkdir -p ~/.pyenv/versions/${PYTHON_VERSION}/lib/python3.9/libvmaf/build/tools; wget -O ~/.pyenv/versions/${PYTHON_VERSION}/lib/python3.9/libvmaf/build/tools/vmaf https://github.com/Netflix/vmaf/releases/download/v2.3.0/vmaf; chmod 755 ~/.pyenv/versions/${PYTHON_VERSION}/lib/python3.9/libvmaf/build/tools/vmaf

然後到https://github.com/Netflix/vmaf/tree/master/model這邊下載model檔案。

執行

這邊是針對1920x1080的yuv420p檔案分析手機上的打分:

PYTHONPATH=${PYTHONPATH}:vmaf/third_party/libsvm/python python3 vmaf/python/vmaf/script/run_vmaf.py yuv420p 1920 1080 "${REFERENCED}.yuv" "${DISTORTED}.yuv" --model vmaf_float_v0.6.1.json --phone-model

另外一種方式是直接透過vmaf跑,這邊直接拉出最後的VMAF分數:

./vmaf -r "${REFERENCED}.yuv" -d "${DISTORTED}.yuv" -w 1920 -h 1080 -p 420 -b 8 -m path=vmaf_float_v0.6.1.json --threads 16 -q -o /dev/stdout --json | jq ".pooled_metrics.vmaf.mean"

如果FFmpeg有編VMAF進去,也可以使用FFmpeg,這個部份的好處是不需要另外轉成YUV格式,要住一根前面不太一樣的是,這邊原始檔案會放在後面的參數:

ffmpeg -nostdin -i "${DISTORTED}.mp4" -i "${REFERENCED}.mp4" -filter_complex libvmaf -f null -

相關連結

外部連結