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