Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/vivictorg/vivict

An easy to use in-browser tool for subjective comparison of the visual quality of different encodings of the same video source.
https://github.com/vivictorg/vivict

videoencoding videoquality videostreaming

Last synced: 3 months ago
JSON representation

An easy to use in-browser tool for subjective comparison of the visual quality of different encodings of the same video source.

Awesome Lists containing this project

README

        

# VIVICT - Vivict Video Comparison Tool

An easy to use in-browser tool for subjective comparison of the visual quality of different encodings of the same video source.

![](docs/screenshot.png?raw=true "vivict screenshot")

## Getting started
Go to https://vivictorg.github.io/vivict/. By default, it will open a HLS test stream from [Sintel](https://durian.blender.org/) video in different bitrates.

## Usage

The screen is split into two parts, with the left and right part displaying the left and right video source. The split position will follow the mouse, so moving the mouse to the left will show more of the right source and vice versa.

#### Selecting sources

On the top left and right are the source selectors, allowing you to select sources for the left and right video
respectively. You can either input a URL or open a local file. If the source is a HLS-playlist, you can also select which video stream you want to view.

#### URL parameters

If you want to programmatically change the sources or the playback position, you can use the following URL parameters:

- `leftVideoUrl` – sets the left video source
- `rightVideoUrl` – sets the right video source
- `leftVideoVariant` – sets the left video HLS variant
- `rightVideoVariant` – sets the right video HLS variant
- `position` – sets the start position in seconds
- `hideHelp` – if 1, hides the automatic help menu
- `hideSourceSelector` – if 1, hides the source selection menu

To use the parameters, you have to URL-encode the source URL. For example, to load the videos `http://example.com/test1.mp4` and `http://example.com/test2.mp4`, open the following URL:

```
http://localhost:3000/?leftVideoUrl=http%3A%2F%2Fexample.com%2Ftest1.mp4&rightVideoUrl=http%3A%2F%2Fexample.com%2Ftest2.mp4
```

#### Shortcuts for video control

l Play video
k Pause video
space Play/Pause video
, Step forward 1 frame
, Step backward 1 frame
/ or - Step forward 1 second
m Step backward 1 second

#### Shortcuts for view control

f Toggle full screen
t Toggle split position follows mouse
] View only left video
\[ View only right video
< Decrease timeshift between videos
> Increase timeshift between videos
u Zoom in
i Zoom out
up Pan up
down Pan down
right Pan right
left Pan left
0 Reset pan and zoom to default
s Toggle visibility of split border
esc Toggle help window

If you think the shortcuts could be better, feel free to suggest a setup!

## Supported codecs and container formats

Depends on the browser. mp4 and h264 should generally work. h265 should work in safari.
AV1 works in firefox.

HLS is supported through [hls.js](https://github.com/video-dev/hls.js/)

MPEG-DASH is supported through [dash.js](https://github.com/video-dev/dash.js/)

## Supported browsers

Vivict has been tested in Chrome. Firefox should also.

## Running locally

Vivict can be run locally by checking out the source code and running

```
npm install
npm start

```
Note: you might also need to install a few peer dependencies.

There is also a C++-based version of offline use available here: https://github.com/vivictorg/vivictpp

## Getting involved

Feel free to issue pull requests or file issues. For more details, see [CONTRIBUTING](CONTRIBUTING.md)

## License

Copyright 2019 Sveriges Television AB.

Vivict is released under the [MIT License](LICENSE).

## Primary Maintainer

Gustav Grusell [https://github.com/grusell/](https://github.com/grusell/)