Project description

Task: Create a plugin for GStreamer, which implements VMAF video quality metrics.


VMAF is a new full-reference perceptual video quality metric developed by Netflix, which has a high correlation with subjective quality scores. It is open-source and ML-based metric, and it's base model is constantly updating. The developers add new features to each new version: such as 4K support, 95% confidence intervals, versions for measuring quality of displaying on phones and other viewing options.
GStreamer is a framework for building multimedia applications. This framework allows you to create various applications. GStreamer has a plug-in architecture and has a very large set of plug-ins that can solve 99% of the needs of all multimedia developers. But until recently, GStreamer had only one metric for video quality --- DSSIM. The goal of my GSoC project was to create VMAF plugin for GStreamer.

Plugin description

New iqa-vmaf plugin is based on GstVideoAggregator and supports all libvmaf options. It sends frame-by-frame quality scores in the end of video sequence processing to GStreamer pipeline using messages.

Additionally, new plugin added a support of the following metrics:

since libvmaf may calculate them when calculating VMAF.

Thus, the number of video quality metrics in GStreamer increased five times :).


The code was written in the following repositories

Merge requests