TL;DR
FFmpeg skaliert Videos mit -vf "scale=1920:1080:flags=lanczos" hoch — Lanczos ist der beste Skalierungsalgorithmus für das Hochskalieren. Für das Entrauschen reduziert hqdn3d das Rauschen (Grain) und bewahrt gleichzeitig Kanten. Für die Stabilisierung bewältigt vidstab Kamerawackler durch einen zweistufigen Prozess. Alle drei Filter lassen sich in einer Filterkette für eine effektive Qualitätsverbesserung kombinieren.
Einleitung
Mit FFmpeg kannst du Videos deutlich verbessern – nicht nur durch Auflösungsänderung. Effektives Qualitäts-Tuning kombiniert Hochskalierung, gezielte Entrauschung und bei Bedarf Stabilisierung. Jeder Schritt adressiert typische Probleme: unscharfe/pixelige Clips, Körnung/Rauschen oder verwackelte Kamera.
Hier findest du für jeden Schritt konkrete Anleitungen und kannst sie direkt kombinieren.
Skalierungsalgorithmen
Der Skalierungsalgorithmus entscheidet, wie FFmpeg beim Upscaling neue Pixel berechnet. Die Wahl beeinflusst sichtbar die Qualität.
| Algorithmus | Geschwindigkeit | Qualität | Am besten für |
|---|---|---|---|
neighbor |
Am schnellsten | Am niedrigsten | Pixel-Art |
bilinear |
Schnell | Niedrig | Geschwindigkeitskritisch |
bicubic |
Mittel | Gut | Allgemeines Herunterskalieren |
lanczos |
Langsamer | Am besten | Hochskalieren |
Beispiel: Hochskalieren auf 1080p mit Lanczos
ffmpeg -i input_720p.mp4 -vf "scale=1920:1080:flags=lanczos" -c:v libx264 -crf 20 output_1080p.mp4
Seitenverhältnis beibehalten
ffmpeg -i input.mp4 -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 output.mp4
-2 berechnet die Höhe automatisch, erhält das Seitenverhältnis und sorgt für ein durch 2 teilbares Ergebnis.
Skalieren auf 4K
ffmpeg -i input.mp4 -vf "scale=3840:-2:flags=lanczos" -c:v libx264 -crf 18 -preset slow output_4k.mp4
-preset slow optimiert die Komprimierung (bei höheren Auflösungen empfehlenswert).
Entrauschung mit hqdn3d
Der Filter hqdn3d entfernt Rauschen und bewahrt Details.
Standard-Entrauschung
ffmpeg -i noisy_video.mp4 -vf "hqdn3d=4:3:6:4.5" -c:v libx264 -crf 20 denoised.mp4
Parameter: luma_spatial:chroma_spatial:luma_temporal:chroma_temporal
-
luma_spatial(0-16): Rauschen im Helligkeitskanal (Standard 4) -
chroma_spatial(0-16): Rauschen in Farbkanälen (Standard 3) -
luma_temporal(0-16): Zeitliche Glättung Helligkeit (Standard 6) -
chroma_temporal(0-16): Zeitliche Glättung Farbe (Standard 4.5)
Stärkere Entrauschung
ffmpeg -i grainy.mp4 -vf "hqdn3d=10:8:15:10" -c:v libx264 -crf 20 clean.mp4
Höhere Werte = mehr Rauschentfernung, aber evtl. Detailverlust. Teste verschiedene Einstellungen!
Leichte Entrauschung (Details erhalten)
ffmpeg -i video.mp4 -vf "hqdn3d=2:1.5:3:2.5" -c:v libx264 -crf 20 output.mp4
Stabilisierung mit vidstab
vidstab stabilisiert verwackeltes Videomaterial in zwei Schritten.
1. Schritt: Bewegung analysieren
ffmpeg -i shaky_video.mp4 -vf "vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=transform.trf" -f null -
-
shakiness=8(1-10): Stärke der Wackler -
accuracy=9(1-15): Analysegenauigkeit Die Dateitransform.trfspeichert die Bewegungsdaten.
2. Schritt: Stabilisierung anwenden
ffmpeg -i shaky_video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=1:smoothing=10" -c:v libx264 -crf 20 stabilized.mp4
-
zoom=1: 1% Zoom gegen Ränder (bei Bedarf erhöhen) -
smoothing=10: Glättung der Bewegung (höher = glatter)
Aggressivere Stabilisierung
ffmpeg -i video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=3:smoothing=30:optzoom=1" -c:v libx264 -crf 20 stable.mp4
-
optzoom=1: Automatischer Zoom zur Randvermeidung
Installation:
Prüfe mit ffmpeg -filters | grep vidstab, ob dein Build vidstab unterstützt (unter macOS meist enthalten: brew install ffmpeg).
Kombinierte Pipeline zur Qualitätsverbesserung
Alle Arbeitsschritte lassen sich als Filterkette kombinieren:
ffmpeg -i source.mp4 \
-vf "hqdn3d=4:3:6:4.5,scale=1920:-2:flags=lanczos,vidstabtransform=input=transform.trf:zoom=1:smoothing=10" \
-c:v libx264 -crf 18 -preset slow \
-c:a copy \
enhanced.mp4
Reihenfolge:
- Entrauschen (Artefakte entfernen)
- Skalieren
- Stabilisieren So wird Rauschen nicht hochskaliert.
Hinweis:
Vorher unbedingt den vidstabdetect-Durchlauf durchführen!
Schärfungsfilter
Für leicht unscharfes Material kann Schärfen helfen:
ffmpeg -i video.mp4 -vf "unsharp=5:5:1.5:5:5:0.5" -c:v libx264 -crf 20 sharpened.mp4
Parameter: lx:ly:la:cx:cy:ca
-
lx:ly: Luma-Maskengröße (Pixel) -
la: Luma-Schärfung (positiv = schärfen, negativ = weichzeichnen) -
cx:cy:ca: Chroma-Entsprechungen
Leichte Schärfung:
unsharp=3:3:0.5:3:3:0.0
Starke Schärfung:
unsharp=5:5:2.5:5:5:0.0
Leistungsüberlegungen
Diese Filter sind rechenintensiv. Richtwerte für ein 10-minütiges 1080p-Video:
- Nur Skalierung: 2–5 Minuten
- Skalierung + hqdn3d: 5–10 Minuten
- Skalierung + hqdn3d + vidstab: 15–25 Minuten
Passe die Balance zwischen Geschwindigkeit und Dateigröße mit -preset an:
-
ultrafast— schnell, aber große Dateien -
fast— Kompromiss -
slow— kleinere Dateien, langsam -
veryslow— kaum Vorteil gegenüberslow, aber viel langsamer
Batch-Verarbeitung:
Mehrere Dateien parallel verarbeiten:
ls *.mp4 | parallel ffmpeg -i {} -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 enhanced_{/}
Verbindung zu KI-Video-Upscaling-APIs herstellen
Für bestmögliche Ergebnisse bei sehr schwacher oder beschädigter Quelle nutzt du KI-Upscaling-APIs anstelle von klassischen Filtern.
Beispiel: WaveSpeedAI – KI-basiertes Upscaling via API
POST https://api.wavespeed.ai/api/v2/wavespeed-ai/video-enhance
Authorization: Bearer {{WAVESPEED_API_KEY}}
Content-Type: application/json
{
"video_url": "https://storage.example.com/source-video.mp4",
"scale": 2,
"enhance": true
}
Vorab mit Apidog testen:
Apidog kann Requests ausführen und Assertions automatisiert prüfen.
Assertions:
Statuscode ist 200
Antworttext enthält Feld 'id'
Status regelmäßig abfragen und das KI-hochskalierte Video anschließend mit dem FFmpeg-Lanczos-Output vergleichen.
KI-Upscaling ist detailreicher, aber langsamer und meist kostenpflichtig.
Für Standardmaterial reicht meist FFmpeg, für kritische Qualität empfiehlt sich die API.
FAQ
Ist Lanczos immer besser als Bicubic?
Beim Hochskalieren ja. Beim Herunterskalieren ist Bicubic oft ähnlich gut und schneller. Lanczos ist rechenintensiver.
Funktioniert vidstab bei Handyaufnahmen?
Ja, gerade Handyclips profitieren massiv. Setze shakiness für Handheld-Videos hoch (8–10).
Wieviel Zoom braucht man zum Randverbergen bei Stabilisierung?
Oft 3–8 %, je nach Wackelintensität. Mit optzoom=1 berechnet FFmpeg es selbst.
Kann FFmpeg altes Material mit niedriger Auflösung verbessern?
Bis zu einem gewissen Punkt. Für stark beschädigtes Material liefern KI-UpScaler wie ESRGAN oder spezialisierte APIs deutlich bessere Ergebnisse.
Verlangsamt Entrauschung die Wiedergabe?
Nein, nur der Verarbeitungsvorgang dauert länger. Das fertige Video läuft normal.
Top comments (0)