video2x/README.md

230 lines
9.0 KiB
Markdown
Raw Normal View History

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-03-31 07:58:09 +00:00
## Download Builds (beta)
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.
The **`full`** package provides all packages that will possibly be needed by `Video2X`, including `FFmpeg`, `waifu2x-caffe` and `waifu2x-converter-cpp`. The config file (`video2x.json`) 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
2019-03-31 07:58:09 +00:00
The **`light`** package provides only the most basic functions of `Video2X`. Only `video2x.exe`, `video2x_setup.exe` and `video2x.json` are included. To setup `FFmpeg`, `waifu2x-caffe` or `waifu2x-converter-cpp` automatically, simply launch `video2x_setup.exe`.
## 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
1. Operating System: Windows
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/)
5. [**waifu2x-caffe**](https://github.com/lltcggie/waifu2x-caffe/releases) / [**waifu2x-converter-cpp**](https://github.com/DeadSix27/waifu2x-converter-cpp/releases)
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
2019-03-30 18:07:30 +00:00
### 2.7.0 (March 30, 2019)
- Added support for different extracted image formats.
2019-03-31 07:58:09 +00:00
- Redesigned FFmpeg wrapper, FFmpeg settings are now customizable in the `video2x.json` config file.
2019-03-30 18:07:30 +00:00
- Other minor enhancements and adjustments (e.g. argument -> method variable)
2019-03-26 21:58:39 +00:00
### Setup Script 1.2.0 (March 26, 2019)
- `video2x_setup.py` script can now automatically download and configure `waifu2x-converter-cpp`.
- replaced old progress indicator with progress bar.
### 2.6.3 (March 24, 2019)
- Added image cleaner by @BrianPetkovsek which removes upscaled frames.
- Fixed some PEP8 issues.
2019-03-31 07:58:09 +00:00
- Exceptions in waifu2x are now caught, and script will now stop on waifu2x error instead of keep going on to FFmpeg.
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.
2018-05-19 05:06:47 +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
2018-05-19 05:10:06 +00:00
## Screenshot
2019-03-19 17:26:04 +00:00
2018-05-19 05:10:06 +00:00
![screenshot](https://user-images.githubusercontent.com/21986859/40265170-39c0caae-5b01-11e8-8371-8b6c24769639.png)
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:32:11 +00:00
### [Step-By-Step Tutorial](https://github.com/K4YT3X/video2x/wiki/Step-By-Step-Tutorial) (Nvidia GPUs)
2019-03-13 16:30:54 +00:00
2019-03-26 21:58:39 +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
2019-03-13 16:32:11 +00:00
### [Waifu2X Drivers](https://github.com/K4YT3X/video2x/wiki/Waifu2X-Drivers)
2019-03-13 16:30:54 +00:00
Go to the [Waifu2X Drivers](https://github.com/K4YT3X/video2x/wiki/Waifu2X-Drivers) wiki page if you want to see a detailed description on the different types of `waifu2x` 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:32:11 +00:00
---
2019-03-13 16:30:54 +00:00
## Quick Start
2018-02-25 04:14:52 +00:00
### Prerequisites
- **Python 3**
Download: https://www.python.org/downloads/windows/
2019-03-31 07:58:09 +00:00
- **FFmpeg Windows Build**
2018-02-25 04:14:52 +00:00
Download: https://ffmpeg.org/download.html
2019-03-13 16:30:54 +00:00
- **waifu2x-caffe** (for Nvidia CUDA/CUDNN)
2018-02-25 04:14:52 +00:00
Download: https://github.com/lltcggie/waifu2x-caffe/releases
2019-03-13 16:30:54 +00:00
- **waifu2x-converter-cpp** (required for AMD, OpenCL and OpenGL processing)
Download: https://github.com/DeadSix27/waifu2x-converter-cpp/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
cd video2x/bin
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.
2019-03-26 21:58:39 +00:00
This script will install the newest version of `ffmpeg`, either or both of `waifu2x-caffe` and `waifu2x-converter-cpp` 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
```
**Note that all command line arguments/options overwrite configuration file settings.**
### 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)
- [Sample Video Original (240P) 1.7MB](https://files.flexio.org/Resources/Videos/sample_input.mp4)
- [Sample Video Upscaled (1080P) 4.8MB](https://files.flexio.org/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.
2019-02-26 23:05:02 +00:00
### Nvidia CUDA (waifu2x-caffe)
2019-02-08 21:49:36 +00:00
Enlarge the video to 1920x1080 using CUDA. You may also use the `-r/--ratio` option.
2019-03-26 21:58:39 +00:00
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m gpu --width=1920 --height=1080
2019-02-08 21:49:36 +00:00
```
### Nvidia CNDNN
Enlarge the video to 1920x1080 using CUDNN. You may also use the `-r/--ratio` option.
2018-08-02 01:52:10 +00:00
2019-03-26 21:58:39 +00:00
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m cudnn --width=1920 --height=1080
2018-05-19 05:06:47 +00:00
```
2018-02-25 04:14:52 +00:00
2019-02-26 23:05:02 +00:00
### AMD or Nvidia (waifu2x-converter-cpp OpenCL)
2019-02-08 21:49:36 +00:00
2019-03-09 17:51:34 +00:00
Enlarge the video by 2 times using OpenCL. Note that `waifu2x-converter-cpp` doesn't support width and height. You'll also have to explicitly specify that the driver to be used is `waifu2x_converter`.
2019-02-08 21:49:36 +00:00
2019-03-26 21:58:39 +00:00
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m gpu -r 2 -d waifu2x_converter
2019-03-09 17:51:34 +00:00
```
2019-02-08 21:49:36 +00:00
### CPU
2019-03-09 17:51:34 +00:00
Enlarge the video to 1920x1080 using the CPU. You may also use the `-r/--ratio` option. This is potentially much slower than using a GPU. The configuration file for this method is similar to the previous methods.
2018-08-02 01:52:10 +00:00
2019-03-26 21:58:39 +00:00
```shell
python video2x.py -i sample_input.mp4 -o sample_output.mp4 -m cpu --width=1920 --height=1080
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
2019-02-17 18:39:21 +00:00
## General Options
2019-02-08 19:18:44 +00:00
### -h, --help
show this help message and exit
2019-03-19 17:26:04 +00:00
## File Options
2019-02-17 18:39:21 +00:00
### -i INPUT, --input INPUT
2019-03-19 17:26:04 +00:00
Source video file/directory (default: None)
### -o OUTPUT, --output OUTPUT
2019-03-19 17:26:04 +00:00
Output video file/directory (default: None)
2019-03-19 17:26:04 +00:00
## Upscaling Options
2019-02-17 18:39:21 +00:00
### -m {cpu,gpu,cudnn}, --method {cpu,gpu,cudnn}
2019-03-19 17:26:04 +00:00
Upscaling method (default: gpu)
### -d {waifu2x_caffe,waifu2x_converter}, --driver {waifu2x_caffe,waifu2x_converter}
2019-03-19 17:26:04 +00:00
Waifu2x driver (default: waifu2x_caffe)
2019-03-19 17:26:04 +00:00
### -y MODEL_DIR, --model_dir MODEL_DIR
2019-03-26 21:58:39 +00:00
Folder containing model JSON files
### -t THREADS, --threads THREADS
2019-03-19 17:26:04 +00:00
Number of threads to use for upscaling (default: 5)
### -c CONFIG, --config CONFIG
2019-03-19 17:26:04 +00:00
Video2X config file location (default: video2x\bin\video2x.json)
### -b, --batch
2019-03-26 21:58:39 +00:00
Enable batch mode (select all default values to questions)
2019-03-19 17:26:04 +00:00
## Scaling Options
### --width WIDTH
2019-03-26 21:58:39 +00:00
Output video width
### --height HEIGHT
2019-03-26 21:58:39 +00:00
Output video height
### -r RATIO, --ratio RATIO
2019-03-26 21:58:39 +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)
(C) 2018-2019 K4YT3X
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
2019-03-31 07:58:09 +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)
## Related Resources
- [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.