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 denoise
nachhttps://ffmpeg.org/ffmpeg-filters.html#vaguedenoiserfür einige andere.