Wie ich mit GPU-Beschleunigung Videos blitzschnell transkodiere – dank FFmpeg & NVIDIA

Videos transkodieren kann eine echte Qual sein – vor allem, wenn man auf die CPU setzt und stundenlang warten muss. Doch es geht auch anders! Nach intensiver Recherche habe ich herausgefunden, wie man mit NVIDIA-GPUs und FFmpeg Videos in Rekordzeit umwandelt. Und das Beste? Es ist gar nicht so kompliziert, wie es klingt.

Warum GPU-Beschleunigung?

Moderne NVIDIA-GPUs (ab der Kepler-Generation) bringen spezielle Hardware-Encoder und -Decoder mit: NVENC (für Encoding) und NVDEC (für Decoding). Diese Chips sind darauf optimiert, Videos extrem schnell zu verarbeiten – ohne die CPU zu belasten.

FFmpeg, das Schweizer Taschenmesser der Videobearbeitung, unterstützt diese Technologie und kann damit bis zu 5x schneller transkodieren als mit reiner CPU-Leistung.

Voraussetzungen: Hardware & Software

  • GPU: Eine NVIDIA-Grafikkarte mit NVENC/NVDEC (Liste hier).
  • Betriebssystem: Linux oder Windows (auch WSL funktioniert).
  • FFmpeg mit NVIDIA-Unterstützung: Entweder selbst kompilieren oder eine vorkompilierte Version nutzen.

FFmpeg mit GPU-Unterstützung installieren

Für Linux:

Die ganzen für die Kompilierung nötigen Tools installieren:

sudo apt install nvidia-cuda-toolkit
sudo apt install nvcc
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev

FFMEPG mit CUDA Support kompilieren:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers  
sudo make install 
cd –
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
cd ffmpeg
./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
make -j 8
sudo make install

Für Windows:

Am einfachsten mit dem Media Autobuild Suite-Skript:

git clone https://github.com/m-ab-s/media-autobuild_suite.git
cd media-autobuild_suite
./media-autobuild_suite.bat

(64-Bit, „non-free“-Option wählen.)

GPU-Beschleunigung in Aktion

Jetzt kann’s losgehen! Hier ein paar praktische Beispiele:

1. Einfache Transkodierung (gleiche Auflösung)

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4

2. Transkodieren + Skalieren auf 720p

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf scale_npp=1280:720 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4

3. Mehrere Ausgaben gleichzeitig (1080p + 720p)

Das ist das wofür ich es gebraucht habe. 4K Videos in 1080p und 720p automatisch erzeugen

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \
  -vf scale_npp=1920:1080 -c:a copy -c:v h264_nvenc -b:v 5M output_1080p.mp4 \
  -vf scale_npp=1280:720 -c:a copy -c:v h264_nvenc -b:v 3M output_720p.mp4

Fazit: Nie wieder warten!

Mit FFmpeg + NVIDIA-GPU lässt sich Videotranskodierung massiv beschleunigen. Ob 4K-Videos, Livestreams oder Batch-Processing – die GPU übernimmt den Großteil der Arbeit, während die CPU entspannt.

Habt ihr schon Erfahrungen mit GPU-Beschleunigung gemacht? Schreibt’s in die Kommentare! 🚀
(OMG, ich klinge schon wie’n Youtuber oder TicToker)

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert