.png)
Laut der Dokumentationmpdezimieren„Um die Bildrate zu verringern, werden Frames gelöscht, die sich nicht wesentlich vom vorherigen Frame unterscheiden.“
Ich möchte nur entfernen könnengenaudoppelte Frames aus einem Video. Ich weiß, das Video hat eine Menge davon, dieähnlich, aber ich möchte nur exakte Duplikate loswerden.
Gibt es irgendwelche Ratschläge, wie man hierfür ffmpeg mit mpdecimate (oder ein anderes Tool) verwendet?
Antwort1
Die Werte für „Hi“ und „Lo“ beziehen sich auf 8 x 8-Pixelblöcke und stellen tatsächliche Unterschiede in den Pixelwerten dar. Ein Schwellenwert von 64 entspricht also einer Differenzeinheit für jedes Pixel oder derselben Einheit, die unterschiedlich über den Block verteilt ist.
Ein Frame kann gelöscht werden, wenn sich keine 8x8-Blöcke um mehr als einen Schwellenwert von „hi“ unterscheiden und wenn sich nicht mehr als frac-Blöcke (wobei 1 das gesamte Bild bedeutet) um mehr als einen Schwellenwert von „lo“ unterscheiden.
Der Standardwert für hi ist 64 * 12, der Standardwert für lo ist 64 * 5 und der Standardwert für frac ist 0,33.
ffmpeg -i input.mkv -vf mpdecimate=hi=1:lo=1:frac=1:max=0 output.mkv
SollenLöschen Sie ein Bild nur, wenn sich der Gesamtwert des Bildes nicht um mehr als 1 Pixel vom vorherigen unterscheidet.
Mein Test mit einem statischen Bild, das in ein 5 Sekunden langes h264-Video gerendert wurde, zeigt, dass in Wirklichkeit 3 von 125 Bildern verloren gehen. Dies liegt möglicherweise an Kompressionsartefakten.
Bei der Einstellung des hohen und niedrigen Wertes auf 200
ffmpeg -i input.mkv -vf mpdecimate=hi=200:lo=200:frac=1:max=0 output.mkv
dann werden 21 Frames behalten.
Möglicherweise müssen Sie die Parameter entsprechend Ihrer Definition einer exakten Kopie anpassen.