video2x/README.md
2019-02-08 16:49:36 -05:00

5.3 KiB

Video2X Lossless Video Enlarger

Official Discussion Group (Telegram): https://t.me/video2x

Prerequisites

Component names that are italicized can be automatically downloaded and configured with the video2x_setup.py script.

  1. Operating System: Windows
  2. Nvidia GPU (AMD support is on the way)
  3. Nvidia GPU driver / Nvidia CUDNN
  4. FFMPEG
  5. Waifu2x Caffe

2.4.0 (February 8, 2019)

  • Added AMD Support. You can now use -d/--driver waifu2x_converter to specify the waifu2x driver to be waifu2x_converter_cpp. Note that you'll have to download and configure waifu2x_converter_cpp first.

2.3.0 (February 8, 2019)

  • Added the ability to specify the cache directories as required by @AusNaminator
  • Fixed the problem where if there's insufficient RAM, the warning doesn't pause the script and prompt the user to reduce the amount of threads used.
  • Some other minor adjustments.

2.2.1 (February 1, 2019)

  • Fixed AAC codec error discovered by @meguerreroa

Description

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.

For short: Video2X enlarges your video without losing details

Watch for the sharper edges in this screenshot around the shadows:

preview

Or you can watch the YouTube video Demo: https://www.youtube.com/watch?v=PG94iPoeoZk

Screenshot

screenshot


Installation

Prerequisites

Install Dependencies

First, clone the video2x repository.

$ git clone https://github.com/K4YT3X/video2x.git
$ cd video2x/bin

Then you may run the video2x_setup.py script to install and configure the depencies automatically. This script is designed and tested on Windows 10.

This script will install ffmpeg, waifu2x-caffe to %LOCALAPPDATA%\\video2x and all python libraries.

$ python bin/video2x_setup.py

Alternatively, you can also install the dependencies manually. Please refer to the prerequisites section to see what's needed.

Then you'll need to install python dependencies before start using video2x. Install simply by executing the following command.

$ pip install -r requirements.txt

Quick Start

Nvidia CUDA (waifu2x_caffe)

Enlarge the video to 1920x1080 using CUDA. You may also use the -r/--ratio option.

$ python video2x.py -i video.mp4 -o video_output.mp4 -m gpu --width=1920 --height=1080

Nvidia CNDNN

Enlarge the video to 1920x1080 using CUDNN. You may also use the -r/--ratio option.

$ python video2x.py -i video.mp4 -o video_output.mp4 -m cudnn --width=1920 --height=1080

AMD or Nvidia (waifu2x_converter_cpp OpenCL)

Enlarge the video by 2 times using OpenCL. Note that waifu2x_converter_cpp doesn't support width and height.

$ python video2x.py -i video.mp4 -o video_output.mp4 -m gpu -r 2

CPU

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.

$ python video2x.py -i video.mp4 -o video_output.mp4 -m cpu --width=1920 --height=1080

Full Usage

usage: video2x.py [-h] -i INPUT -o OUTPUT -m {cpu,gpu,cudnn} -d
                  {waifu2x_caffe,waifu2x_converter}
                  [-y {upconv_7_anime_style_art_rgb,upconv_7_photo,anime_style_art_rgb,photo,anime_style_art_y}]
                  [-t THREADS] [-c CONFIG] [--width WIDTH] [--height HEIGHT]
                  [-r RATIO]

optional arguments:
  -h, --help            show this help message and exit

Basic Options:
  -i INPUT, --input INPUT
                        Specify source video file/directory
  -o OUTPUT, --output OUTPUT
                        Specify output video file/directory
  -m {cpu,gpu,cudnn}, --method {cpu,gpu,cudnn}
                        Specify upscaling method
  -d {waifu2x_caffe,waifu2x_converter}, --driver {waifu2x_caffe,waifu2x_converter}
                        Waifu2x driver
  -y {upconv_7_anime_style_art_rgb,upconv_7_photo,anime_style_art_rgb,photo,anime_style_art_y}, --model_type {upconv_7_anime_style_art_rgb,upconv_7_photo,anime_style_art_rgb,photo,anime_style_art_y}
                        Specify model to use
  -t THREADS, --threads THREADS
                        Specify number of threads to use for upscaling
  -c CONFIG, --config CONFIG
                        Manually specify config file

Scaling Options:
  --width WIDTH         Output video width
  --height HEIGHT       Output video height
  -r RATIO, --ratio RATIO
                        Scaling ratio

This project is based on the following softwares and projects.