CommunityCodierung & Entwicklunggithub.com

luk036/video-komprimieren

Komprimiere MP4-Dateien auf kleinere Größen bei visuell verlustfreier Qualität durch intelligente Reduzierung der Bildrate und Neukodierung mit optimalen Codec/CRF-Einstellungen.

Was ist video-komprimieren?

Diese Fähigkeit reduziert die Dateigröße von MP4-Dateien durch intelligentes Neukodieren mit optimierten Standardeinstellungen. Der Hauptvorteil ist die Reduzierung der Bildrate von 60fps auf 30fps bei Screencasts und Talking-Head-Videos, was zu einer Speicherreduzierung von 20–50 % ohne wahrnehmbaren Qualitätsverlust führt. Die Fähigkeit bietet mehrere Kompressionsprofile (lossless, high, balanced, aggressive) und unterstützt sowohl CLI- als auch Python-API-Nutzung. Sie funktioniert plattformübergreifend (Windows, macOS, Linux) mit Python 3.8+ und ffmpeg/ffprobe. Zu den wichtigsten Techniken gehören das Reduzieren der Bildrate, das Anpassen des CRF-Werts, der Wechsel von H.264 zu H.265 und die Verwendung des `stillimage`-Tuning für Code- und Folieninhalte.

Funktioniert mit~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/luk036/agent-skills/tree/HEAD/skills/compress-video

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was ich tue

Ich reduziere MP4-Dateigrößen durch Neukodierung mit intelligenten Standardeinstellungen. Die wichtigste Erkenntnis: Die meisten Screencasts und Talking-Head-Videos sind bei 60fps übercodiert. Die Reduzierung auf 30fps und die Optimierung des Encoders bringt 20–50 % Dateigrößenreduzierung ohne wahrnehmbaren Qualitätsunterschied.

Gebündelte Skripte: @compress_video.py

Wann du mich verwenden solltest

  • Du hast eine MP4-Datei, die zu groß zum Teilen/Hochladen ist
  • Du hast einen Screencast mit 60fps aufgenommen und möchtest ihn halbieren
  • Du benötigst „gut genug“-Qualität bei einem Bruchteil der Größe
  • Du möchtest Trainingsvideos, Demos oder Aufnahmen stapelweise komprimieren

Verwendung

CLI (schnell)

# Nur analysieren
python compress_video.py input.mp4 --probe-only

# Standardkompression (hohe Qualität)
python compress_video.py input.mp4 output.mp4

# Aggressive Kompression für kleine Dateien
python compress_video.py input.mp4 -p aggressive

# Screencast (Code/EDA-Tools): 60→30fps senken, stillimage-Tuning
python compress_video.py input.mp4 -p balanced --tune stillimage --fps 30

# Herunterskalieren auf 1080p
python compress_video.py input.mp4 -p balanced --resolution 1920x1080

Python-API

from compress_video import compress, probe

# Zuerst analysieren
info = probe("input.mp4")
print(f"{info['width']}x{info['height']} @ {info['fps']:.0f}fps")

# Mit Standardeinstellungen komprimieren
compress("input.mp4", "output.mp4")

# Mit aggressiven Einstellungen komprimieren
compress("input.mp4", "output.mp4", profile="aggressive",
         fps=24, tune="stillimage")

Voraussetzungen

  • Python 3.8+
  • ffmpeg installiert und im PATH (mit ffprobe)

Kompressionsprofile

Profilx264 CRFx265 CRFAnwendungsfall
lossless1820Archivierung, maximale Qualität
high (Standard)2325Visuell verlustfrei, sicherer Standard
balanced2628Gute Qualität, kleinere Dateien
aggressive2830Kleine Dateien, geringe Farbverlaufsverluste

Wichtige Strategien

TechnikTypische EinsparungAuswirkung auf die Qualität
60fps → 30fps~25 %Für Screencasts nicht wahrnehmbar
H.264 CRF 23 (von CRF 18)~20 %Für die meisten Zuschauer nicht sichtbar
H.264 → H.265 (libx265)~30–40 %Keine (gleicher CRF)
--tune stillimage~5–10 %Besser für Code/Folien
Herunterskalieren 3200→1920~50 %Schärfeverlust beim Zoomen

Beispiele

Einen 125 MB Screencast um 30–50 % reduzieren

# Schneller Standardlauf (verwendet libx264, senkt 60→30fps)
python compress_video.py recording.mp4 recording_compressed.mp4
# 125 MB → 97 MB (-22 %)

# Mit stillimage-Tuning (besser für Code/Screencasts)
python compress_video.py recording.mp4 -p balanced --tune stillimage --fps 30
# 125 MB → ~80 MB (-35 %)

# Volles HEVC mit langsamerem Preset
python compress_video.py recording.mp4 --codec h265 --preset slow --fps 30
# 125 MB → ~60 MB (-50 %, dafür langsameres Kodieren)

Stapelverarbeitung eines Ordners

Get-ChildItem *.mp4 | ForEach-Object {
    python compress_video.py $_.Name "$($_.BaseName)_compressed.mp4"
}

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills