DEV Community

Cover image for FFmpeg: Videoqualität verbessern – Skalierung, Entrauschen, Stabilisierung
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

FFmpeg: Videoqualität verbessern – Skalierung, Entrauschen, Stabilisierung

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.

Teste Apidog noch heute

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
Enter fullscreen mode Exit fullscreen mode

Seitenverhältnis beibehalten

ffmpeg -i input.mp4 -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 output.mp4
Enter fullscreen mode Exit fullscreen mode

-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
Enter fullscreen mode Exit fullscreen mode

-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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 -
Enter fullscreen mode Exit fullscreen mode
  • shakiness=8 (1-10): Stärke der Wackler
  • accuracy=9 (1-15): Analysegenauigkeit Die Datei transform.trf speichert 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
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode

Reihenfolge:

  1. Entrauschen (Artefakte entfernen)
  2. Skalieren
  3. 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
Enter fullscreen mode Exit fullscreen mode

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über slow, 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_{/}
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

Vorab mit Apidog testen:

Apidog kann Requests ausführen und Assertions automatisiert prüfen.

Assertions:

Statuscode ist 200
Antworttext enthält Feld 'id'
Enter fullscreen mode Exit fullscreen mode

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)