Der Hinweis auf ffmpeg ist aus meiner Sicht richtig :
| !/bin/sh
for f in *.mp4; do ffmpeg -y -i "$f" -vcodec libx265 -crf 18 -preset slow -c:a copy "$(basename "$f" .mp4).mkv";done
|
(Vorsicht mit dem Parameter -y : Damit erspare ich mir die ffmpeg-Abfrage, ob bei einem erneuten Versuch, die bereits generierte Datei gelöscht werden soll.)
Beide Zeilen in ein file.sh kopieren, Datei ausführbar machen, r. mouse und das script ausführen.
Der Parameter crf bestimmt den Kompressionsgrad, umso größer, desto stärker wird komprimiert (mit crf 51 kann man nur noch erahnen, dass das ein Film war, default = 28, crf um +/- 6 verändert, verkleinert das Ergebnis um die Hälfte, bzw. vergrößert das Ergebnis auf das Doppelte)
Ich vermute, du hast ein h.264 mp4-file. Wenn ich so etwas komprimiere, gehe ich nicht höher als crf 26.
Höher ist selbstverständlich möglich, ob dann die gewünschte Qualität erhalten bleibt, kann man mit vivictpp überprüfen. Beide Videos werden gleichzeitig abgespielt und in einem Fenster angezeigt, also das komprimierte Ergebnis kann überprüft werden.
Wenn du ffmpeg mit ctrl-c (nur einmal ausführen) abbrichst, kannst du auch für Testzwecke nur den Anfang des Films überprüfen, für vivictpp spielt eine unterschiedliche Filmlänge keine Rolle.
Wenn die Datei av01 kodiert ist (ein h.265 Derivat), würde ich mich dafür interessieren, ob eine Komprimierung ohne Qualitätsverlust möglich ist (subjektiv überprüft mit vivictpp).
@hakel2022 :
Max. Komprimierung auf etwa 1/30 möglich (h.264):
-crf 51 -preset ultrafast -tune fastdecode
Wie gesagt, Filme sind dann nicht mehr erkennbar. Aber ffmpeg lässt sich in diesem Kontext dafür nutzen, um einen Film auf fehlerhafte frames zu überprüfen. Eine schnellere und ebenso präzise Analysemöglichkeit habe ich bis dato nicht gefunden.