Giter Club home page Giter Club logo

videobench's Introduction

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

How to install

Install prerequisites on Linux

Install Docker

Install Docker

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

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

Install python3

Install python3 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

  • 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 Video Bench

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

videobench's People

Contributors

jnoduq avatar reid-watcha avatar

Stargazers

Eser avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.