Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/luewh/videoscripy

WebUI for hardware accelerated video optimizing, upscaling, interpolating processes
https://github.com/luewh/videoscripy

dash-plotly ffmpeg hardware-acceleration python video-interpolation video-processing video-upscaling webui windows

Last synced: 12 days ago
JSON representation

WebUI for hardware accelerated video optimizing, upscaling, interpolating processes

Awesome Lists containing this project

README

        

# drawing VideoScripy & WebUI

VideoScripy is a collection of video processes including video **Upscale** and video frame **Interpolation**, it uses Python to generate **FFmpeg**, **Real-ESRGAN** and **IFRNet** command line script and performes serial processing on scanned **mp4**/**mkv** videos.

VideoScripyWebUI is a local web user interface developed with **Dash**, it has the goal of enhancing user experience.
![demo.gif](./doc/demo_upscale.gif)

> **⚠ Currently only compatible with Windows users who have Nvidia cards.**

## Table of contents

- [Embedded version](#embedded-version)
* [Installation](#installation)
* [Usage](#usage)

- [Benchmarking](#benchmarking)

- [Processes Description](#processes-description)

- [Credits](#credits)

## Embedded version

Simplest. Python, Tools are already setup.
Advantage : **Beginner-friendly**

### Installation

1. Download and extract the [Embedded release](https://github.com/luewh/Video-Script/releases/latest)

### Usage

- Run the `RUN.bat` to launch WebUI

## Benchmarking

- ### x3 Faster FFprobe by running it "asynchronously"
![Fast FFprobe](./doc/faster_way_to_run_ffprobe.png)
(ffprobe on 64 videos, ~2h long each)

## Processes Description

- optimize

Reduce the video biteRate in order to gain storage space.
The processed videos will have a bitRate = width * height * quality, which quality=3 is generally the lowest value before appearance of artifacts (bad images, blurry...). In other words, humain wont notice the visual difference between video of quality 3 and 6.

- resize

Reduce the video width and height.

- upscale

Recover old video from 360p to 4K, enhance video quality.
Begin with a transformation of video to image frames, then upscale each frames, finally reassemble to video.
It has the ability to start from last upscal progress if the "_upscaled_frame" wasn't deleted.

- interpolate

Increase video frame rate (FPS), smooth video motions.
Begin with a transformation of video to image frames, then interpolate between frames, finally reassemble to video.

- merge

Merge all video, including each of its audio and subtitle by option, into mkv. Then use media player as PotPlayer to switch between video/audio/subtitle.

## Credits

This project relies on the following software and projects :
- [alive-progress](https://github.com/rsalmei/alive-progress)
- [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN)
- [IFRNet](https://github.com/ltkong218/IFRNet)
- [FFmpeg](https://www.ffmpeg.org/)
- [FFmpeg-python](https://github.com/kkroening/ffmpeg-python)
- [Dash](https://dash.plotly.com/)

Sounds come from :
- [Pixabay](https://pixabay.com/sound-effects/search/typewriter/)