So komprimieren Sie Videos mit FFmpeg
Die Optimierung von Videoinhalten für kurze Ladezeiten ist für moderne Webanwendungen entscheidend. Große Videodateien können die Performance einer Website erheblich beeinträchtigen, was sich auf die Nutzererfahrung und das Ranking in Suchmaschinen auswirkt. FFmpeg, ein leistungsfähiges Open-Source-Multimedia-Framework, bietet robuste Werkzeuge, um Videos bei gleichbleibender Qualität zu komprimieren. Das führt zu schnelleren Ladezeiten und einer stärkeren Nutzerbindung.
Für ein kompatibles MP4 mit einem guten Verhältnis von Qualität zu Dateigröße beginnen Sie mit:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -movflags +faststart -c:a aac -b:a 128k output.mp4
Erhöhen Sie den CRF-Wert für eine kleinere Datei oder verringern Sie ihn für höhere Qualität. Eine langsamere Voreinstellung verbessert in der Regel die Kompressionseffizienz, benötigt aber mehr Zeit zum Codieren. Vergleichen Sie das Ergebnis immer mit repräsentativem Ausgangsmaterial, bevor Sie eine Einstellung auf eine ganze Bibliothek anwenden.
Videocodecs und Formate verstehen
Wählen Sie Codecs für Web-Videos anhand von Kompatibilität und Kompressionseffizienz aus:
- H.264: Bietet universelle Kompatibilität und eignet sich ideal für den allgemeinen Einsatz.
- H.265: Liefert eine rund 30 % bessere Kompression als H.264 und wird von den meisten modernen Geräten unterstützt.
- VP9: Bietet eine kostenlose Alternative zu H.265 mit breiter Browser-Unterstützung.
- AV1: Bietet die beste Kompression bei wachsender Unterstützung und ist damit eine zukunftssichere Wahl.
Ein Codec codiert und decodiert digitale Videodaten. Containerformate (etwa MP4, MKV oder WebM) fassen Video, Audio und Metadaten zusammen. Für die Auslieferung im Web ist MP4 mit H.264 die kompatibelste Option, während WebM mit VP9 oder AV1 in unterstützten Browsern eine bessere Kompression bieten kann.
| Codec | Kompression | Browser-Unterstützung | Anwendungsfall |
|---|---|---|---|
| H.264 | Gut | Universell | Allgemeiner Einsatz |
| H.265 | ~30 % effizienter | Teilweise | Moderne Geräte |
| VP9 | Effizient | Breit | Kostenlose Alternative |
| AV1 | Am besten | Wachsend | Zukunftssicher |
FFmpeg auf Ihrem System installieren
Die Beispiele verwenden Optionen, die in aktuellen FFmpeg-Releases verfügbar sind. Prüfen Sie
ffmpeg -version und die in Ihrem Build enthaltenen Encoder, bevor Sie einen Codec
auswählen.
Linux (Ubuntu/Debian)
sudo apt update && sudo apt install ffmpeg
macOS
brew install ffmpeg
Windows
- Laden Sie den neuesten Build von gyan.dev herunter.
- Entpacken Sie das Archiv.
- Fügen Sie den Ordner
binzum PATH Ihres Systems hinzu.
Grundlegende Videokompression mit FFmpeg
Videodateigröße reduzieren
Der folgende Befehl bietet mit H.264 ein gutes Gleichgewicht zwischen Qualität und Kompression für Web-Videos:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -movflags +faststart -c:a aac -b:a 128k output.mp4
Empfohlene CRF-Werte nach Codec:
- H.264: 18-23 für hohe Qualität, 23-28 für den allgemeinen Einsatz
- H.265: 24-30 (entspricht ungefähr H.264 bei CRF 18-24)
- VP9: 15-35 (mit einer anderen Skala)
- AV1: 25-35 für den allgemeinen Einsatz
Moderne Codec-Optionen
Für Browser, die neuere Codecs unterstützen, können Sie AV1 für eine bessere Kompression verwenden:
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -strict experimental -cpu-used 8 -row-mt 1 -c:a libopus -b:a 128k output.mkv
Fortgeschrittene Kompressionstechniken mit FFmpeg
Two-Pass-Encoding
Für eine präzise Steuerung der Bitrate verwenden Sie Two-Pass-Encoding:
# First pass
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 1000k -pass 1 -an -f null /dev/null
# Second pass
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 2 -c:a aac -b:a 128k output.mp4
Qualitätsbasiertes Encoding
Um eine gleichbleibende visuelle Qualität zu erhalten, ziehen Sie qualitätsbasiertes Encoding in Betracht:
# H.265 (HEVC)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -tag:v hvc1 -c:a aac -b:a 128k output.mp4
# Vp9
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -row-mt 1 -c:a libopus -b:a 128k output.webm
Browser-Kompatibilität
| Codec | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| H.264 | ✅ | ✅ | ✅ | ✅ |
| H.265 | ⚠️ (teilweise) | ❌ | ✅ | ⚠️ (teilweise) |
| VP9 | ✅ | ✅ | ⚠️ (Safari v16+) | ✅ |
| AV1 | ✅ | ✅ | ⚠️ (Safari v17+) | ✅ |
Qualität und Dateigröße vergleichen
Nutzen Sie die integrierten Werkzeuge von FFmpeg, um Ihre Ausgabe zu bewerten:
# Preview video
ffplay output.mp4
# Compare file sizes
ls -lh input.mp4 output.mp4
# Get detailed video information
ffprobe -v quiet -print_format json -show_format -show_streams output.mp4
Batch-Videokompression automatisieren
Bash-Skript
#!/bin/bash
input_dir="/path/to/videos"
output_dir="/path/to/output"
mkdir -p "$output_dir"
for file in "$input_dir"/*.mp4; do
filename=$(basename "$file")
ffmpeg -i "$file" \
-c:v libx264 \
-crf 23 \
-preset medium \
-movflags +faststart \
-c:a aac \
-b:a 128k \
"$output_dir/${filename%.*}_compressed.mp4"
done
PowerShell-Skript
$inputDir = "C:\path\to\videos"
$outputDir = "C:\path\to\output"
New-Item -ItemType Directory -Force -Path $outputDir
Get-ChildItem -Path $inputDir -Filter *.mp4 | ForEach-Object {
$outputFile = Join-Path $outputDir ($_.BaseName + "_compressed.mp4")
ffmpeg -i $_.FullName `
-c:v libx264 `
-crf 23 `
-preset medium `
-movflags +faststart `
-c:a aac `
-b:a 128k `
$outputFile
}
Bewährte Verfahren
- Wählen Sie Codecs anhand Ihrer Zielgruppe und der Anforderungen an die Browser-Unterstützung aus.
- Testen Sie verschiedene CRF-Werte, um das optimale Gleichgewicht zwischen Qualität und Dateigröße zu ermitteln.
- Verwenden Sie Two-Pass-Encoding für besser vorhersehbare Dateigrößen.
- Aktivieren Sie
faststart, um die Wiedergabe-Performance im Web zu verbessern. - Ziehen Sie in Betracht, mehrere Formate zu erzeugen, um die Kompatibilität über verschiedene Geräte hinweg sicherzustellen.
Zusammenfassend bietet FFmpeg eine vielseitige und leistungsstarke Lösung für die Videokompression im Web. Durch die sorgfältige Auswahl von Codecs und die Feinabstimmung Ihrer Encoding-Parameter optimieren Sie die Video-Performance, ohne Abstriche bei der Qualität zu machen.
Für die automatisierte Videoverarbeitung im großen Maßstab bietet sich der Video-Encoding-Service von Transloadit an, der optimierte Encoding-Pipelines und eine automatische Formatauswahl auf Basis der Browser-Fähigkeiten bereitstellt.
