This script is a combination of forking master-of-zen/Plot_Vmaf and combining it with the live motion graphing from my own repository HunterAP23/GameBench_Graph_Maker.
There are two parts to this project:
- Encoding different versions of the reference videos, and measuring their performance based on encode time.
- Calculating VMAF and other metrics through the use of the FFmpeg program with the ability to run multiple instances at once to max out the speed of the calculations. VMAF scales with threads up to a certain point, and this part of the script can help
- Generate image and video graphs of the different VMAF related metrics. The metrics include SSIM, MS-SSIM, and others that VMAF normally generates. The video file is a live playback of the values to be used in situations like benchmark videos.
NOTICE: The app is currently not in a working state. Follow for updates and future releases.
WIP
Using FFmpeg, the script calculates the VMAF score as well as related metrics like PSNR, SSIM, and MS_SSIM. It also attempts to utilize multithreading where available, with the main focus being able to run multiple VMAF calculations simultaneously to maximize the speed of all calculations.
This will generate a single image to show the VMAF values for the inputted VMAF file overall, and generate a video file that is animated to move through the graph, both at the same framerate (as reported by the source VMAF report) and has a transparent background.
Please read the CONTRIBUTING.md file to see how to set up your development environment.
Python 3.8 or newer
FFmpeg
Install them with either of the following commands:
pip install -r requirements.txt
OR
python -m pip install -r requirements.txt
Use any package management tool like pipenv
or uv
to create a virtual environment for the project.
The default resolution for the graph image and video is 1080p. As expected, generating higher resolution images and videos will take much longer.