video2x/README.md

256 lines
10 KiB
Markdown
Raw Normal View History

2020-05-05 06:29:03 +00:00
![Master Branch Version](https://img.shields.io/badge/master-v4.0.0-9cf?style=flat-square)
2020-05-05 06:22:37 +00:00
![GitHub release (latest by date)](https://img.shields.io/github/v/release/k4yt3x/video2x?style=flat-square)
![GitHub All Releases](https://img.shields.io/github/downloads/k4yt3x/video2x/total?style=flat-square)
![GitHub](https://img.shields.io/github/license/k4yt3x/video2x?style=flat-square)
![Platforms](https://img.shields.io/badge/Platforms-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=flat-square)
2019-02-08 19:18:44 +00:00
# Video2X Lossless Video Enlarger
2018-05-19 05:06:47 +00:00
2019-02-08 19:28:01 +00:00
### Official Discussion Group (Telegram): https://t.me/video2x
2019-12-12 02:59:38 +00:00
## Download Builds (Windows)
2019-03-31 07:58:09 +00:00
You can go to the [releases page](https://github.com/k4yt3x/video2x/releases) to download the latest builds of `Video2X`. The exe files will require no Python or Python module installation.
2020-05-05 05:51:24 +00:00
The **`full`** package provides all packages that will possibly be needed by `Video2X`, including `FFmpeg`, `waifu2x-caffe`, `waifu2x-converter-cpp`, `waifu2x-ncnn-vulkan`, `srmd-ncnn-vulkan` and `Anime4KCPP`. The config file (`video2x.yaml`) is also already configured for the environment. All you need to do is just to launch `video2x.exe`.
2019-02-08 19:18:44 +00:00
2020-05-05 05:51:24 +00:00
The **`light`** package provides only the most basic functions of `Video2X`. Only `video2x.exe`, `video2x_setup.exe` and `video2x.yaml` are included. To setup dependencies (e.g. `FFmpeg` and `Waifu2X`) automatically, simply launch `video2x_setup.exe`.
2019-03-31 07:58:09 +00:00
## Prerequisites
2019-02-08 22:02:04 +00:00
2019-03-31 07:58:09 +00:00
Component names that are **bolded** can be automatically downloaded and configured with the `video2x_setup.py` script.
2019-02-08 19:18:44 +00:00
2019-12-12 02:59:38 +00:00
1. Operating System: Windows / Linux
2019-03-31 07:58:09 +00:00
2. AMD GPU / Nvidia GPU
3. AMD GPU driver / Nvidia GPU driver / Nvidia CUDNN
4. [**FFmpeg**](https://ffmpeg.zeranoe.com/builds/)
2019-08-16 04:46:43 +00:00
5. One of the following drivers
- [**waifu2x-caffe**](https://github.com/lltcggie/waifu2x-caffe/releases)
- [**waifu2x-converter-cpp**](https://github.com/DeadSix27/waifu2x-converter-cpp/releases)
- [**waifu2x-ncnn-vulkan**](https://github.com/nihui/waifu2x-ncnn-vulkan)
2020-04-27 00:04:37 +00:00
- [**srmd-ncnn-vulkan**](https://github.com/nihui/srmd-ncnn-vulkan)
2020-05-05 05:51:24 +00:00
- [**Anime4KCPP**](https://github.com/TianZerL/Anime4KCPP)
2019-02-26 23:05:02 +00:00
2019-03-05 00:43:52 +00:00
## Recent Changes
2019-02-27 03:51:48 +00:00
2020-05-05 05:51:24 +00:00
### 4.0.0 (May 5, 2020)
- Added internationalization support
- Added language zh_CN (简体中文)
- Language will change automatically according to system locale settings
- Added support for [Anime4KCPP](https://github.com/TianZerL/Anime4KCPP) in replacement for Anime4K (Java)
- Driver-specific settings can now be specified in the command line by specifying them after a `--`
- All driver-specific settings are parsed by the corresponding driver
- Modularized driver wrappers in Video2X
- Cleaned up some clutters in the code
2020-04-27 00:04:37 +00:00
### 3.2.0 (April 26, 2020)
- Added support for [SRMD-NCNN-Vulkan](https://github.com/nihui/srmd-ncnn-vulkan)
2020-02-27 03:31:51 +00:00
### 3.1.0 (February 26, 2020)
- Removed the redundant layer of multi-threading since multi-process has to be implemented for launching Windows PE files in sub-processes
- Added support for graceful exit upon `KeyboardInterrupt` or termination signals
- Other minor improvements such as replacing `' '.join(execute)` with `shlex.join(execute)`
2020-05-05 05:51:24 +00:00
### Setup Script 1.8.0 (May 5, 2020)
2019-03-26 21:58:39 +00:00
2020-05-05 05:51:24 +00:00
- Added support for Anime4KCPP
2019-03-26 21:58:39 +00:00
2018-02-25 04:14:52 +00:00
## Description
2018-02-25 03:51:41 +00:00
Video2X is an automation software based on waifu2x image enlarging engine. It extracts frames from a video, enlarge it by a number of times without losing any details or quality, keeping lines smooth and edges sharp.
2020-05-05 05:51:24 +00:00
For short: **Video2X enlarges your video without losing details**.
2018-02-25 04:14:52 +00:00
2018-05-19 05:06:47 +00:00
Watch for the sharper edges in this screenshot around the shadows:
2018-10-22 19:58:27 +00:00
2019-02-08 19:18:44 +00:00
![preview](https://user-images.githubusercontent.com/21986859/49412428-65083280-f73a-11e8-8237-bb34158a545e.png)
2018-02-25 04:51:09 +00:00
**You can also watch the YouTube video Demo: https://www.youtube.com/watch?v=PG94iPoeoZk**
Clip is from trailer of animated movie "千と千尋の神隠し". Copyright belongs to "株式会社スタジオジブリ (STUDIO GHIBLI INC.)". Will delete immediately if use of clip is in violation of copyright.
2018-05-19 05:06:47 +00:00
2020-05-06 08:48:04 +00:00
## Screenshots
2019-03-19 17:26:04 +00:00
2020-05-06 08:48:04 +00:00
### Video2X GUI
2019-08-18 03:19:47 +00:00
2020-05-06 08:48:04 +00:00
![Video2X GUI Screenshot](https://user-images.githubusercontent.com/21986859/81157039-19346b00-8f76-11ea-965f-4d7edf6a818e.png)
### Video2X CLI
![Video2X CLI Screenshot](https://user-images.githubusercontent.com/21986859/81039711-4fe88380-8e99-11ea-9846-175f72100a76.png)
2018-05-19 05:10:06 +00:00
2019-03-13 16:32:11 +00:00
---
## Documentations
### [Video2X Wiki](https://github.com/k4yt3x/video2x/wiki)
2019-03-13 16:30:54 +00:00
You can find all detailed user-facing and developer-facing documentations in the [Video2X Wiki](https://github.com/k4yt3x/video2x/wiki). It covers everything from step-by-step instructions for beginners, to the code structure of this program for advanced users and developers. If this README page doesn't answer all your questions, the wiki page is where you should head to.
2019-03-13 16:30:54 +00:00
### [Step-By-Step Tutorial](https://github.com/k4yt3x/video2x/wiki/Step-By-Step-Tutorial)
2019-03-13 16:30:54 +00:00
For those who want a detailed walk-through of how to use `Video2X`, you can head to the [Step-By-Step Tutorial](https://github.com/k4yt3x/video2x/wiki/Step-By-Step-Tutorial) wiki page. It includes almost every step you need to perform in order to enlarge your first video.
2019-03-13 16:30:54 +00:00
2020-05-05 05:51:24 +00:00
### [Drivers](https://github.com/k4yt3x/video2x/wiki/Drivers)
2019-03-13 16:30:54 +00:00
2020-05-05 05:51:24 +00:00
Go to the [Drivers](https://github.com/k4yt3x/video2x/wiki/Drivers) wiki page if you want to see a detailed description on the different types of drivers implemented by `Video2X`. This wiki page contains detailed difference between different drivers, and how to download and set each of them up for `Video2X`.
2019-03-13 16:30:54 +00:00
### [Q&A](https://github.com/k4yt3x/video2x/wiki/Q&A)
2019-04-29 04:05:56 +00:00
If you have any questions, first try visiting our [Q&A](https://github.com/k4yt3x/video2x/wiki/Q&A) page to see if your question is answered there. If not, open an issue and we will respond to your questions ASAP.
2019-04-29 04:05:56 +00:00
2019-03-13 16:32:11 +00:00
---
2019-03-13 16:30:54 +00:00
## Quick Start
2018-02-25 04:14:52 +00:00
### Prerequisites
2020-02-27 03:31:51 +00:00
- **Python 3.8**
Download: https://www.python.org/downloads/windows/
2019-08-16 04:46:43 +00:00
- **FFmpeg Windows Build**
Download: https://ffmpeg.org/download.html
2020-05-05 05:51:24 +00:00
- **waifu2x-caffe** (designed for Nvidia CUDA/cuDNN)
2018-02-25 04:14:52 +00:00
Download: https://github.com/lltcggie/waifu2x-caffe/releases
2020-05-05 05:51:24 +00:00
- **waifu2x-converter-cpp**
Download: https://github.com/DeadSix27/waifu2x-converter-cpp/releases
2019-08-16 04:46:43 +00:00
- **waifu2x-ncnn-vulkan**
Download: https://github.com/nihui/waifu2x-ncnn-vulkan/releases
2020-05-05 05:51:24 +00:00
- **Anime4KCPP**
Download: https://github.com/TianZerL/Anime4KCPP/releases
2020-04-27 00:04:37 +00:00
- **srmd-ncnn-vulkan**
Download: https://github.com/nihui/srmd-ncnn-vulkan/releases
2018-02-25 04:14:52 +00:00
2019-03-13 16:30:54 +00:00
### Installing Dependencies
2019-02-08 19:18:44 +00:00
First, clone the video2x repository.
2019-03-26 21:58:39 +00:00
```shell
git clone https://github.com/k4yt3x/video2x.git
2020-05-05 05:51:24 +00:00
cd video2x/src
2019-02-08 19:18:44 +00:00
```
2019-03-26 21:58:39 +00:00
Then you may run the `video2x_setup.py` script to install and configure the dependencies automatically. This script is designed and tested on Windows 10.
2020-05-05 05:51:24 +00:00
This script will install the newest version of `ffmpeg`, and all upscaling drivers to `%LOCALAPPDATA%\\video2x` and all required python libraries.
2019-03-13 16:30:54 +00:00
2019-03-26 21:58:39 +00:00
```shell
python video2x_setup.py
```
2018-02-25 04:14:52 +00:00
2019-02-08 19:18:44 +00:00
Alternatively, you can also install the dependencies manually. Please refer to the prerequisites section to see what's needed.
2018-08-02 01:52:10 +00:00
Then you'll need to install python dependencies before start using video2x. Install simply by executing the following command.
2019-03-26 21:58:39 +00:00
```shell
pip install -r requirements.txt
2018-08-02 01:52:10 +00:00
```
### Sample Videos
If you can't find a video clip to begin with, or if you want to see a before-after comparison, we have prepared some sample clips for you. The quick start guide down below will also be based on the name of the sample clips.
![sample_video](https://user-images.githubusercontent.com/21986859/52905766-d5512b00-3236-11e9-9aea-077636539679.png)
2020-05-05 05:51:24 +00:00
- [Sample Video Original (240P) 1.7MB](https://files.k4yt3x.com/Resources/Videos/sample_input.mp4)
- [Sample Video Upscaled (1080P) 4.8MB](https://files.k4yt3x.com/Resources/Videos/sample_output.mp4)
Clip is from anime "さくら荘のペットな彼女". Copyright belongs to "株式会社アニプレックス (Aniplex Inc.)". Will delete immediately if use of clip is in violation of copyright.
2020-05-05 05:51:24 +00:00
### Basic Upscale Example
2019-02-08 21:49:36 +00:00
2020-05-05 05:51:24 +00:00
This example command below uses `waifu2x-caffe` to enlarge the video `sample-input.mp4` two double its original size.
2019-02-08 21:49:36 +00:00
2019-03-26 21:58:39 +00:00
```shell
2020-05-05 05:51:24 +00:00
python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe
2019-02-08 21:49:36 +00:00
```
2020-05-05 05:51:24 +00:00
### Advanced Upscale Example
2019-02-08 21:49:36 +00:00
2020-05-05 05:51:24 +00:00
If you would like to tweak engine-specific settings, either specify the corresponding argument after `--`, or edit the corresponding field in the configuration file `video2x.yaml`. **Command line arguments will overwrite default values in the config file.**
2018-08-02 01:52:10 +00:00
2020-05-05 05:51:24 +00:00
This example below adds enables TTA for `waifu2x-caffe`.
2019-02-08 21:49:36 +00:00
2019-03-26 21:58:39 +00:00
```shell
2020-05-05 05:51:24 +00:00
python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe -- --tta 1
2019-03-09 17:51:34 +00:00
```
2020-05-05 05:51:24 +00:00
To see a help page for driver-specific settings, use `-d` to select the driver and append `-- --help` as demonstrated below. This will print all driver-specific settings and descriptions.
2019-06-26 03:48:33 +00:00
```shell
2020-05-05 05:51:24 +00:00
python video2x.py -d waifu2x_caffe -- --help
2018-05-19 05:06:47 +00:00
```
2019-03-13 16:32:11 +00:00
---
2019-02-17 18:39:21 +00:00
# Full Usage
2018-05-19 05:06:47 +00:00
2020-05-05 05:51:24 +00:00
## General Options:
2019-02-08 19:18:44 +00:00
### -h, --help
show this help message and exit
### -i INPUT, --input INPUT
2020-05-05 05:51:24 +00:00
source video file/directory
### -o OUTPUT, --output OUTPUT
2020-05-05 05:51:24 +00:00
output video file/directory
2020-05-05 05:51:24 +00:00
### -c CONFIG, --config CONFIG
video2x config file path
2020-05-05 05:51:24 +00:00
### -d {waifu2x_caffe,waifu2x_converter_cpp,waifu2x_ncnn_vulkan,srmd_ncnn_vulkan,anime4kcpp}, --driver {waifu2x_caffe,waifu2x_converter_cpp,waifu2x_ncnn_vulkan,srmd_ncnn_vulkan,anime4kcpp}
upscaling driver (default: waifu2x_caffe)
2020-05-05 05:51:24 +00:00
### -p PROCESSES, --processes PROCESSES
number of processes to use for upscaling (default: 1)
2019-03-19 17:26:04 +00:00
2020-05-05 05:51:24 +00:00
### -v, --version
display version, lawful information and exit
2019-03-19 17:26:04 +00:00
## Scaling Options
### --width WIDTH
2020-05-05 05:51:24 +00:00
output video width
### --height HEIGHT
2020-05-05 05:51:24 +00:00
output video height
### -r RATIO, --ratio RATIO
2020-05-05 05:51:24 +00:00
scaling ratio
2019-03-12 16:05:18 +00:00
2019-03-13 16:32:11 +00:00
---
2019-03-03 23:57:24 +00:00
## License
Licensed under the GNU General Public License Version 3 (GNU GPL v3)
https://www.gnu.org/licenses/gpl-3.0.txt
![GPLv3 Icon](https://www.gnu.org/graphics/gplv3-127x51.png)
2020-01-12 08:32:25 +00:00
(C) 2018-2020 K4YT3X
2019-03-03 23:57:24 +00:00
2019-02-17 18:39:21 +00:00
## Credits
2019-03-03 23:57:24 +00:00
This project relies on the following software and projects.
2019-02-17 18:39:21 +00:00
2020-05-06 04:12:49 +00:00
- [FFmpeg](https://www.ffmpeg.org/)
- [waifu2x-caffe](https://github.com/lltcggie/waifu2x-caffe)
2019-03-17 23:11:35 +00:00
- [waifu2x-converter-cpp](https://github.com/DeadSix27/waifu2x-converter-cpp)
2019-06-26 03:59:51 +00:00
- [waifu2x-ncnn-vulkan](https://github.com/nihui/waifu2x-ncnn-vulkan)
2020-05-05 05:51:24 +00:00
- [srmd-ncnn-vulkan](https://github.com/nihui/srmd-ncnn-vulkan)
- [Anime4KCPP](https://github.com/TianZerL/Anime4KCPP)
2019-03-17 23:11:35 +00:00
2019-04-18 18:57:30 +00:00
## Special Thanks
2019-07-27 21:38:52 +00:00
Appreciations given to the following code contributors:
2019-04-18 18:57:30 +00:00
- @BrianPetkovsek
2019-07-27 21:38:52 +00:00
- @SAT3LL
2019-04-18 18:57:30 +00:00
2019-03-17 23:11:35 +00:00
## Related Resources
2019-07-27 21:52:18 +00:00
- [Dandere2x](https://github.com/CardinalPanda/dandere2x): `Dandere2x` is a lossy video upscaler also built around `waifu2x`, but with video compression techniques to shorten the time needed to process a video.