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)
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!