In welcher Reihenfolge sollte ich Stabilisierung und Komprimierung mit ffmpeg verwenden?

In welcher Reihenfolge sollte ich Stabilisierung und Komprimierung mit ffmpeg verwenden?

Ich drehe Videos von Fußballspielen mit einer Canon Vixia, die mit 60 Bildern pro Sekunde in HD mit h264-Komprimierung aufzeichnet. Von der Kamera werden 20 GB große Dateien erstellt, die ich (um Speicherplatz zu sparen und die Upload-Geschwindigkeit zu erhöhen) mit h265 mit einer auf 7000 k und 60 Bildern pro Sekunde begrenzten Bitrate neu komprimiert habe, was für meine Zwecke eine ausreichend hohe Qualität ist. Ich verwende den hevc_amf-Encoder mit einer AMD-Grafikkarte und dieser komprimiert ein 1 Stunde und 20 Minuten langes HD-Video auf etwa 40 Minuten (2x), womit ich ziemlich zufrieden bin.

Vor Kurzem habe ich gelernt, wie man vidstab verwendet, was mein verwackeltes Video wirklich gut aufräumt. Jetzt möchte ich es also sowohl mit vidstab stabilisieren als auch vor dem Archivieren erneut auf h265 komprimieren. Ich suche nach Empfehlungen, wie ich den Workflow am effizientesten sequenzieren und trotzdem gute Ergebnisse erzielen kann. Soll ich 1) zuerst vidstab auf meiner ursprünglichen 20-GB-Datei ausführen (sowohl die Erkennungs- als auch die Transformationsdurchgänge)? Oder soll ich 2) vor der Stabilisierung erneut mit dem hardwarebeschleunigten hevc_amf-Encoder komprimieren?

  1. Falls die erste Option, eine Folgefrage. Ich führe die vidstabtransform wie folgt aus:
ffmpeg.exe -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 outputstabilized.mp4

Dies steht in den ffmpeg.org-Dokumenten. Es scheint die Bitrate von den ursprünglichen 30 Mbit/s auf etwa 10 Mbit/s zu ändern. Warum ist das so? Kann ich das steuern und die ursprüngliche Bitrate beibehalten? Sollte ich das? (Brauche ich außerdem die Unscharfmaske? Liegt das daran, dass mit der Stabilisierung ein gewisses Zoomen verbunden ist?).

Der Nachteil dieses Ansatzes scheint zu sein, dass Sie mit h265 eine bessere Komprimierung erhaltennachStabilisierung aufgrund geringerer Bewegung der Pixel, aber vielleicht ist der Unterschied nicht so groß.

  1. Kann ich bei der zweiten Option immer noch die Bitrate am Stabilisierungsausgang steuern?

Wenn jemand andere Arbeitsabläufe empfehlen kann, bin ich auch ganz Ohr. (Ich habe darüber nachgedacht, komplexe Filtermaps zu verwenden, aber sie scheinen ... komplex :) und ich habe mir nicht die Zeit genommen, sie zu verstehen.)

Dank im Voraus!

Antwort1

Führen Sie den vidstabdetectFilter auf der Originaldatei aus.

Führen Sie den vidstabtransformFilter auch auf der Originaldatei aus, verwenden Sie jedoch den HEVC-Encoder, um die endgültige Ausgabe zu erstellen. Filter werden vor dem Encoder ausgeführt, sodass die Transformation die Frames der ursprünglichen Eingabe stabilisiert, bevor sie an den Encoder gesendet werden.

verwandte Informationen