Reduzierung des Rauschens in der Szenenauswahllogik in ffmpeg

Reduzierung des Rauschens in der Szenenauswahllogik in ffmpeg

Ausdiese AntwortIch verwende diesen Befehl, um nur die Komponenten eines (weitgehend unveränderlichen) Video-Feeds zu extrahieren, die Bewegung enthalten:

ffmpeg -i input.mp4 -vf "select=gt(scene\,0.0001),setpts=N/(25*TB)" output.mp4

Ich habe jedoch festgestellt, dass ich unter bestimmten (z. B. schlechteren) Lichtbedingungen viele Einzelbilder sehe, obwohl im Video scheinbar nichts passiert. Unter diesen Bedingungen scheint es tatsächlich viel Rauschen zu geben, was meiner Meinung nach dazu führt, dass die Gesamtmenge der Änderungen den Schwellenwert überschreitet. Wenn ich den Schwellenwert verdoppele, verschwindet tatsächlich das meiste davon – aber immer noch nicht alles. Wenn ich den Schwellenwert jedoch weiter erhöhe, verpasse ich tatsächlich kleine Bewegungen, die ich nicht verpassen möchte.

Ich dachte, wenn der Filter zuerst etwas tut, um das Rauschen in der Szene zu reduzieren, vielleicht eine Art leichte Unschärfe bei einer Auflösung von 2-3 Pixeln, würde dies die fehlerhafte Bewegungserkennung beseitigen und ich könnte tatsächliche Bewegung in kleinerem Maßstab erkennen. Ich sehe einige Optionen zum Unschärfen, aber die Dokumentation auf derAuswahlfiltergeht nicht darauf ein, wie man sie indirekt verwendet, d. h. ich möchte nicht, dass die eigentliche Ausgabe beeinträchtigt wird, sondern nur die Szenenerkennung.

Antwort1

Haben Sie vor der Auswahl in Ihrer Filterkette einen echten Rauschunterdrückungsfilter ausprobiert?

Etwas wie ffmpeg -i input.mp4 -vf "vaguedenoiser=PARAMS,select=gt(scene\,0.0001),setpts=N/(25*TB)" output.mp4?

Suchen Sie denoisenachhttps://ffmpeg.org/ffmpeg-filters.html#vaguedenoiserfür einige andere.

verwandte Informationen