-
Notifications
You must be signed in to change notification settings - Fork 0
nvidia
Nvidia NVENC support comes with HandBrake in some distros, to check first make sure you have at least
- GeForce GTX Pascal (1050+)
- RTX Turing (1650+, 2060+)
- or later GPU.
- drivers are updated to at least 418.81 or later.
Testing if HandBrake recognizes your GPU - Run
HandBrakeCLI --help | grep -A12 "Select video encoder"
into your ssh/terminal window
If NVENC is enabled should give something similar to
-e, --encoder <string> Select video encoder:
x264
x264_10bit
nvenc_h264
x265
x265_10bit
x265_12bit
nvenc_h265
nvenc_h265_10bit
mpeg4
mpeg2
VP8
VP9
HandBrake has exited.
You can also check with
HandBrakeCLI --version
and it should output
[23:37:19] Compile-time hardening features are enabled
[23:37:19] nvenc: version 12.0 is available
[23:37:19] nvdec: is not compiled into this build
[23:37:19] hb_init: starting libhb thread
[23:37:19] thread 7f002300e700 started ("libhb")
HandBrake 20230130172537-a5238f484-master
If you don't see the extra options for nvenc then you will need to build HandBrakeCLI from source. instructions can be found here:
First add all the dependencies from here: https://handbrake.fr/docs/en/latest/developer/install-dependencies-ubuntu.html
and then when ready build handbrake following instructions from here: https://handbrake.fr/docs/en/latest/developer/build-linux.html
Recommended to do immediately after installing ubuntu
-
Installing the drivers on servers and/or for computing purposes
sudo ubuntu-drivers install --gpgpu
If you have a desktop environment install drop the --gpgpu -
Reboot system
sudo reboot
Do this before point 5 in post installation guide for docker "Run the container with sudo ./start_arm_container.sh"
-
Adding the repository:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
-
Update repository
sudo apt-get update
-
Install the NVIDIA Container Toolkit packages:
sudo apt-get install -y nvidia-container-toolkit
-
Configure the container runtime by using the nvidia-ctk command:
sudo nvidia-ctk runtime configure --runtime=docker
-
Restart the Docker daemon:
sudo systemctl restart docker
Once handbrake recognizes your GPU, You can use one of the 2 built in profiles in your arm.yaml config.
H.265 NVENC 2160p 4K
OR H.265 NVENC 1080p
You will also need to add the arm user to the video & render groups so that arm can access the NVENC encoder
sudo usermod -a -G video arm
sudo usermod -a -G render arm
Be sure that both variables for NVIDIA_DRIVER_CAPABILITIES=all
and --gpus all
are set as NVENC won't work without them
For more detailed information you can read through the official HandBrake documentation HandBrake Building for linux
Getting Started
-
Docker
-
Manual Install
- See Alternate Installations
-
Automatic script install
Web Page Overview
- Coming Soon
- Jobs
- Settings
Configuration
-
Configuration Files
-
Alternate Installations
Hardware Configuration
Troubleshooting
ARM Status
Contributing to ARM
How ARM Works