Ich muss ein Thumbnail für Videos für eine Webanwendung generieren und mache das derzeit mit diesem Befehl:
ffmpeg -ss <seconds> -i <input file> -vframes 1 -y <output file>
Ziemlich einfach und macht den Job. Aber natürlich sind die Rahmen manchmal nicht sehr "interessant".
Zum Beispiel ist das Video manchmal schwarz geworden, wenn sich die Szene ändert, oder es könnte etwas Langweiliges sein, wie z. B. ein laufender Abspann oder ähnliches.
Ich brauche eine Art Algorithmus, um etwas Interessantes aus dem Video zu extrahieren und im Wesentlichen die langweiligen Teile herauszufiltern.
Gibt es irgendetwas in FFmpeg, das dies erleichtern könnte?
Wenn nicht, muss ich eine Reihe von Frames sammeln und sie außerhalb von FFmpeg verarbeiten. wahrscheinlich mit PHP. Als Randbemerkung, wenn jemand einen bestehenden Code hat, der dies tut, wäre es super hilfreich!
Danke vielmals
Kein ffmpeg-Code kann interessante Frames identifizieren. Es gibt höchstens Filter, die repräsentative Frames erkennen und Filter, die Frames mit einem Szenenwechsel identifizieren. Also gibt es dafür bestenfalls einen Thumbnail-Filter. Es kann keine "interessanten" Frames erkennen, aber es erkennt repräsentative Frames. Frames aus der Mitte der Überblendungen sollten also aus sein.
Syntax ist
ffmpeg -ss 50 -i in.avi -vf thumbnail=300 -vsync 0 thumbs%d.png
Dadurch wird ein repräsentatives Bild aus jedem Stapel von 300 aufeinanderfolgenden Bildern ausgewählt.
SpongeBobPHPants
-frames:v 1
, dass der erste geeignete Rahmen verwendet wird, den er findet. Das scheint mir ok zu sein. Dies scheint den-ss
Parameter jedoch zu ignorieren, soweit ich das beurteilen kann. Wäre ideal, um nach X Sekunden mit der Suche nach Thumbnails zu beginnen, aber vielleicht wird es nicht benötigt. Danke noch einmal!Gyan
ss
vor-i
der Arbeit als auch bei der Ausgabe handelt es sich um eine Reihe von Bilddateien (PNG ist sowieso ein Standbildformat). Es ist eine Änderung erforderlich, um eine Eigenart von ffmpeg zu vermeiden, die Frames dupliziert. Ich habe das dem Befehl hinzugefügt.