VideoScript 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.
VideoScriptWebUI is a local web user interface developed with Dash, it has the goal of enhancing user experience.
⚠ Currently only compatible with Windows users who have Nvidia cards.
Simplest. Python, Tools are already setup.
Advantage : Beginner-friendly
- Download and extract the Embedded release
- Run the
RUN.bat
to launch WebUI
Need to install Python dependencies, add tools to PATH manually.
Advantage : Freedom
-
Download and extract the SelfSetup release
-
Download and install Python 3.10 if you dont have.
-
Install dependencies
pip install -r requirements.txt
-
Add tools to PATH
Below tools are included in self setup release :
FFmpeg full build for hardware acceleration.
Real-ESRGAN-ncnn-vulkan for video upscaling.
Ifrnet-ncnn-vulkan for video frame interpolation.
Important
Make sure to add
<pathTo>\ffmpeg-full_build\bin
<pathTo>\Real-ESRGAN
<pathTo>\Ifrnet
in the environment variable PATH
-
VideoScript.py
Run the script on where videos are located and follow the command line indication
-
VideoScriptWebUI.py
Run the script, a web page should be opened automatically, select a process, select a path where videos are located, SCAN then RUN. The processed videos are under a folder of selected path example ./upscaled.
-
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.
This project relies on the following software and projects.
- ✅ stdout to Dash
- ✅ alive-progress ANSI Escape Code "?25l" render problem
- ✅ License
- ✅ Favicon
- ✅ Embed release
- ✅ Stop upscale and interpolate process
- ✅ Get video walk optimize
- ✅ Arrange process select UI
- ✅ Better row height
- ✅ Select / Unselect all videos
- ✅ Sort video by properties
- Better hevc_nvenc parameters
- Gif to explain processes, tooltip on process dropdown
- Log ?