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: 2 months ago
JSON representation
WebUI for hardware accelerated video optimizing, upscaling, interpolating processes
- Host: GitHub
- URL: https://github.com/luewh/videoscripy
- Owner: luewh
- License: mit
- Created: 2024-11-01T20:19:45.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-01-11T21:51:22.000Z (9 months ago)
- Last Synced: 2025-01-16T09:38:38.813Z (9 months ago)
- Topics: dash-plotly, ffmpeg, hardware-acceleration, python, video-interpolation, video-processing, video-upscaling, webui, windows
- Language: CSS
- Homepage:
- Size: 21.9 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
VideoScripy
**English** | [**中文简体**](./README_CN.md)
**Quality preserved, Storage saved.**
Collection of video processing module such as compression, upscale, interpolation and stream manipulation.

## Table of contents
- [Processing module](#processing-module)
- [Requirements](#requirements)
- [Embedded version](#embedded-version)
- [Self setup version](#self-setup-version)
- [Credits](#credits)## Processing module
- compress
Reduce the video bitRate in order to gain storage space.
expand more
The processed videos will have a bitRate = width * height * quality, quality=3 is generally the lowest value before appearance of artifacts (bad images, blurry...). In other words, humain won't notice the visual difference between video of quality 3 and 6.

- resize
Reduce the video width and height.
- upscale
Increase video size by factor of 2,3 or 4 with AI, enhance video quality.
It has the ability to start from last upscal progress if the "_upscaledx?_frame" wasn't deleted.
expand more
Begin with a transformation of video to image frames, then upscale each frames, finally reassemble to video.
Original : 266x200

Upscal x2 : 532x400

Upscal x3 : 798x600
Upscal x4 1064x800
- interpolate
Increase video frame rate (FPS), smooth video.
expand more
Begin with a transformation of video to image frames, then interpolate between frames, finally reassemble to video.
interpolate 25fps -> 60fps
(The 60fps gif may be slowed down due to markdown, use a proper viewer may solve the problem)
- preview
Generate a grid of images.3x2 grid of 2min countdown video

- frame
Graph each frame's size of a video266x200 10s long video

- stream
Merge selected stream of multiple videos into one video.
And also modify metadata as tile and language.
Then use media player as PotPlayer to switch between video/audio/subtitle.
## Requirements
- Windows OS
- NVIDIA GPU for faster video process
- Atleast 50 Go disk space free for Upscale process | 10 Go for Interpolate process
- Python 3.10
- [Tools](#installation-1)## Embedded version
Simplest. Python, Tools are already setup.
Advantage : **Beginner-friendly**### Installation
Download and extract the [Embedded release](https://github.com/luewh/Video-Script/releases/latest)
### Usage
Run the `VideoScripyWebUI.bat`
## Self setup version
Need to download the source codes, install Python and its dependencies, download tools and include them to tools folder or add them to PATH.
Advantage : **Freedom**### Installation
1. Download the source code and extract.
1. Download and install Python 3.10 if you dont have.
2. Install dependencies
```shell
pip install -r requirements.txt
```
3. Download tools[FFmpeg](https://www.gyan.dev/ffmpeg/builds/) full build for hardware acceleration.
[Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan/releases) for video upscaling.
[Ifrnet-ncnn-vulkan](https://github.com/nihui/ifrnet-ncnn-vulkan/releases) for video frame interpolation.
[NVEncC](https://github.com/rigaya/NVEnc) for GPU feature detection.4. Include tools
Create a "tools" folder and place tools in like this:
```
VideoScripy
│ ...
│ VideoScripyWebUI.py
└───tools
│ └───ffmpeg-full_build
│ │ │ ...
│ │ └───bin
│ │ │ ffmpeg.exe
│ │ │ ffprobe.exe
│ └───Real-ESRGAN
│ │ │ ...
│ │ │ realesrgan-ncnn-vulkan.exe
│ └───Ifrnet
│ │ │ ...
│ │ │ ifrnet-ncnn-vulkan.exe
|...
```Or add them in the environment variable *PATH*
- `\ffmpeg-full_build\bin`
- `\Real-ESRGAN`
- `\Ifrnet`
- `\NVEnc`### Usage
Run the `VideoScripyWebUI.py`
## 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/)
- [NVEncC](https://github.com/rigaya/NVEnc)Sounds come from :
- [Pixabay](https://pixabay.com/sound-effects/search/typewriter/)