Video komprimieren
Führe die Komprimierung aus und liefere die verifizierte Datei. Dieses Skill ist in sich abgeschlossen und benötigt keinen Gesprächsverlauf.
Standardprofil
- MP4-Container; H.264-Video via
libx264. -crf 23 -preset slow -pix_fmt yuv420p -movflags +faststart.- Behalte die Quell-Maße, Bildrate und Gesamtdauer bei. Füge kein Skalieren,
-r, Trimmen oder Geschwindigkeitsänderungen hinzu, außer wenn gewünscht. - Standardmäßig: Tonspur vollständig entfernen mittels
-map 0:v:0 -an. Playback stumm schalten oder Stille encodieren ist nicht gleichwertig. - Wenn der Nutzer explizit Ton wünscht, kartiere die Tonspur und verwende
-c:a copyfür MP4-kompatibles Audio. Dies bewahrt den codierten Audio-Stream Bit für Bit. Falls inkompatibel, codiere mit AAC bei 128 kb/s neu und offenbare die Neucodierung. Behaupte nicht, dass Audio bewahrt wurde, wenn die Quelle keines hat. - Explizite Nutzerparameter überschreiben die Standardeinstellungen. CRF 23 ist verlustbehaftete Videokompression: versprich kein mathematisch verlustfreies Video oder eine feste Dateigröße.
Arbeitsablauf
- Untersuche die tatsächliche lokale Quelle: Video-/Audiostreams, Maße, Bildrate, Dauer und Dateigröße. Warte bis Downloads abgeschlossen sind. Verwende vorhandenes FFmpeg/FFprobe oder eine verfügbare vertrauenswürdige Laufzeitumgebung; hartcodiere nicht den temporären Binärpfad einer anderen Maschine. Fordere die Quelle an, wenn sie nicht verfügbar ist.
- Verwende einen neuen Dateinamen wie
<quellname>-komprimiert.mp4am gewünschten Zielort oder neben der Quelle, wenn nicht anders angegeben. Bewahre Quelle und vorhandene Ausgaben mit-n. Zitiere Pfade und vermeide Shell-Interpolation von Dateinamen. - Codiere mit dem Standardprofil und dem gewählten Audiomodus. Reduziere nicht stillschweigend Auflösung/Bildrate oder erhöhe CRF, um eine kleinere Größe zu erreichen. Melde, wenn die Ausgabe größer ist, anstatt eine Reduktion zu behaupten.
- Warte auf erfolgreichen Abschluss. Untersuche die Ausgabestreams und decodiere die Datei vollständig auf Fehler. Bestätige, dass Maße/Bildrate und Dauer mit der Quelle übereinstimmen, wobei normale Containerrundungsdifferenzen innerhalb eines Frames erlaubt sind. Der Standardmodus muss keine Audiostreams enthalten. Bei kopiertem Audio vergleiche die Hashes der codierten Audiostreams. Überprüfe repräsentative Frames auf Ausrichtung, Beschneidung und sichtbare Artefakte.
- Liefere einen anklickbaren Dateilink, Quell- → Ausgabegrößen und etwaige wesentliche Kompromisse. Gib an, ob Audio entfernt, unverändert kopiert oder neu codiert wurde. Lösche oder verschiebe die Quelle nicht.
Befehle
Ersetze die Beispielpfade mit tatsächlichen Pfaden. Führe nur den gewählten Audiomodus aus.
Standard – kein Audiostream:
ffmpeg -hide_banner -nostdin -n -i "input.mp4" \
-map 0:v:0 -c:v libx264 -crf 23 -preset slow \
-pix_fmt yuv420p -an -movflags +faststart "output-compressed.mp4"
Ton explizit bewahren:
ffmpeg -hide_banner -nostdin -n -i "input.mp4" \
-map 0:v:0 -map '0:a?' -c:v libx264 -crf 23 -preset slow \
-pix_fmt yuv420p -c:a copy -movflags +faststart "output-compressed.mp4"
Quelle und Ausgabe unabhängig voneinander untersuchen, dann die Ausgabe decodieren:
ffprobe -v error -show_streams -show_format -of json "output-compressed.mp4"
ffmpeg -v error -nostdin -i "output-compressed.mp4" -f null -
Für kopiertes Audio führe die Überprüfung auf beiden Dateien aus und vergleiche die Ergebnisse. Wähle jeden Audiostream separat aus, wenn mehrere vorhanden sind:
ffmpeg -v error -i "output-compressed.mp4" -map 0:a:0 \
-c:a copy -f hash -hash sha256 -
Dieses Profil zielt auf undurchsichtige SDR-Videos ab. Wenn Transparenz, HDR oder mehrere Videostreams erhalten bleiben müssen, wähle vor der Konvertierung das passende Ausgabeformat/Profil; normales H.264/yuv420p bewahrt keinen Alphakanal.