FFmpeg-Szenenerkennung und Szenenschnitt

0

Dies ist eine Folgefrage aus meiner vorherigen gestellten Frage HIER . Im Grunde versuche ich mit FFmpeg, Szenen zu erkennen, nachdem ich eine gute ausgewählt habe scenecut Schwelle, und nehmen Sie aus jeder Szene einen einzelnen repräsentativen Frame.

Im Moment speichert der Befehl zur Szenenerkennung, den wir bereits haben, die erkannten Szenen auf der Festplatte, was leider sehr lange dauert:

ffmpeg -y -i myVideo.mp4 -vf yadif \
       -c:v libx264 -profile:v high -preset:v fast \
       -x264opts min-keyint=15:keyint=1000:scenecut=20 -b:v 2000k \
       -c:a aac -b:a 128k \
       -f segment -segment_format mp4 -segment_time 0.01 -segment_format_options movflags=faststart \
       /home/1/output%05d.mp4

Mein letztes Ziel ist es, die Szenen zu identifizieren und nur ein einzelnes Bild aus dieser Szene als Bild (etwa das mittlere Bild dieser Szene) zu speichern, anstatt die gesamten Szenenvideos zu kodieren und zu speichern. Gibt es einen schnellen Weg, um das zu erreichen?

Tina J
quelle
@Gyan Sehr nützlich. Aber ffmpeg -i video.mp4 -vsync 0 -vf select='gt(scene\,0.4)' -f image2 img-%04d.png funktioniert nicht für mich und zeigt mir Fehler: Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Tina J
1
Sie sollten cmd von der ersten Verknüpfung aus ausführen und dann eine Textdatei wie in der 2. Verknüpfung gezeigt vorbereiten.
Gyan
Danke @Gyan. Angenommen, ich brauche nur den ersten Frame der Szene. Was wäre ein Einzelbefehl (nicht zwei Befehle)?
Tina J