Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/JNoDuq/videobench

VMAF PSNR Bitrate Analyzer
https://github.com/JNoDuq/videobench

Last synced: 7 days ago
JSON representation

VMAF PSNR Bitrate Analyzer

Awesome Lists containing this project

README

        

# VideoBench (VMAF PSNR Bitrate Analyzer)

## Abstract

Video Bench is a tool that makes it easy to compare transcoded video files with a reference file (source)

* Calculates VMAF and PSNR scores for test files
* Find the real video bitrate (size of the frames and not the size of the packets)
* Give a by seconds or by frames views
* Works with almost all video codecs (mpeg2, H264, HEVC, VP9, ...)
* No need to uncompress the video files
* Can synchronize tests files with reference file
* Choose automatically the right deinterlace filter for the reference file depending of the test file
* Automatically scale the test files for matching the reference file
* Automatically choose the right VMAF model (standard or 4k) depending of the reference file
* Generate a JSON files compiling all the infos
* Can export in PNG all graphics (with configurable resolution)
* Easy to install (need Docker and Python3 with the pyside2 library)
* Run on Linux, Mac and windows
* Has a GUI
* Can be used in commande line

![Video Bench](https://user-images.githubusercontent.com/10562413/60960089-a6cd0d00-a309-11e9-81a7-ca8655547e7d.png)

## How to install

### Install prerequisites on Linux

#### Install Docker

[Install Docker](https://docs.docker.com/)

#### Make sure you can run a docker container

```
sudo usermod -a -G docker $USER
```

#### Install python3

```
sudo apt-get install python3
```

#### Install pyside2

```
sudo apt-get install python3-pip
pip3 install pyside2
```

### Install prerequisites on Mac OS

#### Install Docker

[Install Docker](https://docs.docker.com/)

#### Install python3

```
brew install python3
```

#### Install pyside2

```
brew install python3-pip
pip3 install pyside2
```

### Install prerequisites on Windows

#### Install Docker

For be able to use Docker on windows you need to have Windows 10 64bit Pro, Enterprise or Education

[Install Docker](https://docs.docker.com/)

#### Install python3

[Install python3](https://www.python.org/downloads/windows/)
Don't forget to click on "add python to PATH"

#### Install pyside2

```
pip install pyside2
```

### Create docker container

Download or clone the repo

```
cd videobench
docker build -t docker-videobench -f ./Dockerfile ./
```

## How to use it

### Using the GUI

Run the GUI
```
python3 videobench_ui.py
```
or on windows

```
python videobench_ui.py
```

![Video Bench GUI overview](https://user-images.githubusercontent.com/10562413/57775395-35b01580-771d-11e9-910a-0eb53eea5959.png)

* You can choose one reference file (Original Video) and multiple tests files (Compressed Videos)
* If your tests files are not synchronize with the reference file you can set the sync time in seconds.
* If your not sure about what sync time is excately the right one, you can set a sync windows. The analyzer will try to find the best sync time, starting by the sync time set and seraching in that windows.
* Click on the start button for start the analyze, when it's done the information and the graph will be showed in the GUI.
* I recommend doing measurements on short durations files (max 30 seconds), because the computation times can be quite long.
* Generate the quality information can take some time, but when it's done all the information will be save in JSON files in the same folder than the video files.
* You can directly import the JSON files in the GUI by using the "Import Measurements" button.

For more information read the article on [VideoBench](https://jnduquesne.medium.com/video-bench-how-measure-your-video-quality-easily-85a0feb8f6e2)

### Using the command line

example :
```
python3 videobench.py -ref ref_files.mp4 -i test_file1.mp4 test_file2.mp4 test_file2.mp4 -sync -0.1 -sw 0.2
```

help :
```
python3 videobench.py -h
```