FFmpeg-Szenenerkennung und Szenenschnitt

679
Tina J

Dies ist eine Folgefrage aus meiner vorherigen HIER gestellten Frage . Im Grunde verwende ich FFmpeg. Ich versuche Szenen zu erkennen, nachdem ich einen guten scenecutSchwellwert gewählt habe, und aus jeder Szene einen einzelnen repräsentativen Frame herauszuholen.

Im Moment speichert der unten beschriebene Befehl zur Szenenerkennung 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?

0
Siehe https://stackoverflow.com/q/40688062/5726027 und den zweiten Teil von https://stackoverflow.com/q/34962426/5726027 Gyan vor 5 Jahren 1
@Gyan Sehr nützlich. 'Ffmpeg -i video.mp4 -vsync 0 -vf select =' gt (scene \, 0.4) '-f image2 img-% 04d.png` funktioniert jedoch nicht für mich und zeigt einen Fehler an: `Ausgabedatei ist leer, nichts wurde verschlüsselt (check -ss / -t / -frames-Parameter, falls verwendet) ` Tina J vor 5 Jahren 0
Sie sollten cmd von der ersten Verknüpfung aus ausführen und dann eine Textdatei wie in der 2. Verknüpfung gezeigt vorbereiten. Gyan vor 5 Jahren 1
Danke @Gyan. Angenommen, ich brauche nur den ersten Frame der Szene. Was wäre ein Einzelbefehl (nicht zwei Befehle)? Tina J vor 5 Jahren 0

0 Antworten auf die Frage