Enable NVENC for FFMPEG
Based on this Article: https://www.cyberciti.biz/faq/how-to-install-ffmpeg-with-nvidia-gpu-acceleration-on-linux/
To enable NVENC to use the h264_nvenc encoder for example you have to compile ffmpeg yourself.
Requirements: You have installed the standard Nvidia drivers.
Use nvidia-detect to find the right driver for you.
If you want cuda support aswell install the nvidia-cuda-toolkit
Create a compilation directory:
mkdir ~/nvidia/ && cd ~/nvidia/
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
Compile the missing headers (ffnvcodec):
cd nv-codec-headers && sudo make install
Download FFMPEG Source Code:
cd ~/nvidia/
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/`
Install the compilation tools:
sudo apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev`
Configure FFMPEG to compile with nvenc and cuda enabled. (You can remove the cuda flags if you only need nvenc):
PKG_CONFIG_PATH="~/nvidia/nv-codec-headers" ./configure --enable-nonfree --enable-cuda-nvcc --enable-cuda-llvm --enable-nvenc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
Compile FFMPEG:
make -j $(nproc)
Now there should be a executeable created:
ls -l ffmpels -l ffmpe`g
./ffmpeg
If you want you can install this executable:
make install
Now you can use cuda hardware acceleration and the nvenc codec
Update:
Or just grab the latest release from Jellyfin ffmpeg: