Mit FFmpeg und GPU-Beschleunigung Videos blitzschnell transkodieren

Mit FFmpeg GPU-Beschleunigung Videos transkodieren

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 langer intensiver Recherche (jede ffmpeg Version macht das anders) 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