图片视频画质优化
Go to file
2020-05-09 19:30:24 -04:00
.github enable sponsorships 2020-05-06 17:46:35 +00:00
src output intermediate video-only file if stream migration fails 2020-05-09 19:30:24 -04:00
_config.yml Set theme jekyll-theme-slate 2019-12-22 06:00:02 +00:00
.gitignore removed some obsolete items from gitignore 2020-05-07 19:59:04 -04:00
CNAME Create CNAME 2019-12-22 05:48:39 +00:00
LICENSE Initial commit 2018-02-24 11:34:41 -05:00
README.md fixing image captions 2020-05-06 20:48:19 -04:00

Master Branch Version GitHub release (latest by date) GitHub All Releases GitHub Platforms Become a Patron!

Video2X Lossless Video Enlarger

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

Download Builds (Windows)

You can go to the releases page 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, 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.

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.

Prerequisites

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

  1. Operating System: Windows / Linux
  2. AMD GPU / Nvidia GPU
  3. AMD GPU driver / Nvidia GPU driver / Nvidia CUDNN
  4. FFmpeg
  5. One of the following drivers

Recent Changes

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 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

3.2.0 (April 26, 2020)

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)

Setup Script 1.8.0 (May 5, 2020)

  • Added support for Anime4KCPP

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

Upscale Comparison Demonstration

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.

Screenshots

Video2X GUI

Video2X GUI Main Tab Screenshot

Video2X GUI Main Tab Screenshot

Video2X GUI Driver Settings Screenshot

Video2X GUI Driver Settings Screenshot

Video2X CLI

Video2X CLI Screenshot

Video2X CLI Screenshot


Documentations

Video2X Wiki

You can find all detailed user-facing and developer-facing documentations in the 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.

Step-By-Step Tutorial

For those who want a detailed walk-through of how to use Video2X, you can head to the Step-By-Step Tutorial wiki page. It includes almost every step you need to perform in order to enlarge your first video.

Drivers

Go to the 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.

Q&A

If you have any questions, first try visiting our Q&A page to see if your question is answered there. If not, open an issue and we will respond to your questions ASAP.


Quick Start

Prerequisites

Installing Dependencies

First, clone the video2x repository.

git clone https://github.com/k4yt3x/video2x.git
cd video2x/src

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.

This script will install the newest version of ffmpeg, and all upscaling drivers to %LOCALAPPDATA%\\video2x and all required python libraries.

python 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

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

Sample Upscale Videos

Clip is from anime "さくら荘のペットな彼女". Copyright belongs to "株式会社アニプレックス (Aniplex Inc.)". Will delete immediately if use of clip is in violation of copyright.

Basic Upscale Example

This example command below uses waifu2x-caffe to enlarge the video sample-input.mp4 two double its original size.

python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe

Advanced Upscale Example

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.

This example below adds enables TTA for waifu2x-caffe.

python video2x.py -i sample-input.mp4 -o sample-output.mp4 -r 2 -d waifu2x_caffe -- --tta 1

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.

python video2x.py -d waifu2x_caffe -- --help

Full Usage

General Options:

-h, --help

show this help message and exit

-i INPUT, --input INPUT

source video file/directory

-o OUTPUT, --output OUTPUT

output video file/directory

-c CONFIG, --config CONFIG

video2x config file path

-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)

-p PROCESSES, --processes PROCESSES

number of processes to use for upscaling (default: 1)

-v, --version

display version, lawful information and exit

Scaling Options

--width WIDTH

output video width

--height HEIGHT

output video height

-r RATIO, --ratio RATIO

scaling ratio

License

Licensed under the GNU General Public License Version 3 (GNU GPL v3) https://www.gnu.org/licenses/gpl-3.0.txt

GPLv3 Icon

(C) 2018-2020 K4YT3X

Credits

This project relies on the following software and projects.

Special Thanks

Appreciations given to the following code contributors:

  • @BrianPetkovsek
  • @SAT3LL
  • Dandere2x: A lossy video upscaler also built around waifu2x, but with video compression techniques to shorten the time needed to process a video.
  • Waifu2x-Extension-GUI: A similar project that focuses more and only on building a better graphical user interface. It is built using C++ and Qt5, and currently only supports the Windows platform.