docs/book/src/running/container.md
Instructions for running the Video2X container.
This section documents how to upscale a video. Replace $TAG with an appropriate container tag. A list of available tags can be found here (e.g., 6.1.1).
Make sure your host has the proper GPU and Vulkan libraries and drivers, then use the following command to launch the container:
docker run --gpus all -it --rm -v $PWD/data:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -p realesrgan -s 4 --realesrgan-model realesr-animevideov3
In addition to installing the proper drivers on your host, nvidia-docker2 (NVIDIA Container Toolkit) must also be installed on the host to use NVIDIA GPUs in containers. Below are instructions for how to install it on some popular Linux distributions:
nvidia-docker2nvidia-container-toolkit from the AURyay -S nvidia-container-toolkitOnce all the prerequisites are installed, you can launch the container:
docker run --gpus all -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -p realesrgan -s 4 --realesrgan-model realesr-animevideov3
Depending on the version of your nvidia-docker and some other mysterious factors, you can also try setting no-cgroups = true in /etc/nvidia-container-runtime/config.toml and adding the NVIDIA devices into the container if the command above doesn't work:
docker run --gpus all --device=/dev/nvidia0 --device=/dev/nvidiactl --runtime nvidia -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -p realesrgan -s 4 --realesrgan-model realesr-animevideov3
If you are still getting a vkEnumeratePhysicalDevices failed -3 error at this point, try adding the --privileged flag to give the container the same level of permissions as the host:
docker run --gpus all --privileged -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -p realesrgan -s 4 --realesrgan-model realesr-animevideov3
Similar to NVIDIA GPUs, you can add --gpus all or --device /dev/dri to pass the GPU into the container. Adding --privileged might help with the performance (thanks @NukeninDark).
docker run --gpus all --privileged -it --rm -v $PWD:/host ghcr.io/k4yt3x/video2x:$TAG -i standard-test.mp4 -o output.mp4 -p realesrgan -s 4 --realesrgan-model realesr-animevideov3