Ausgabe von Video-Thumbnails während des Szenenwechsels mit einer Mindestrate von 1 pro Sekunde

Ausgabe von Video-Thumbnails während des Szenenwechsels mit einer Mindestrate von 1 pro Sekunde

An die Thumbnails stelle ich folgende Anforderungen:

  1. Szenenwechsel sollte mindestens 6% anders sein als der letzteselect=gt(scene\,0.06)
  2. Das Seitenverhältnis bleibt bei 1280 Pixel Breite erhaltenscale='min(1280\, iw):-1'
  3. mindestens 1 Sekunde zwischen jedem Miniaturbild-r 1
  4. Dateinamen repräsentieren den Zeitversatz des Miniaturbilds-vsync 0 -frame_pts 1

Dies wird derzeit wie folgt in einen Befehl eingespeist:

ffmpeg -copyts -i Datei.mp4 -vf "select=gt(Szene\,0.06),scale='min(1280\, iw):-1'" -r 1 -vsync 0 -frame_pts 1 Snapshot.1280.%04d.png -f null

Allerdings erhalte ich Fehler in der Ausgabe:

Die Verwendung von -vsync 0 und -r kann zu ungültigen Ausgabedateien führen

[image2 @ 0x7f804500a000] Die Anwendung hat dem Multiplexer im Stream 0 ungültige, nicht monoton ansteigende DTS bereitgestellt: 463 >= 463

Muss ich mir im Befehl darüber Gedanken machen oder sollte ich sie ignorieren?

Antwort1

Wenn Sie mindestens 1 Sekunde zwischen den Schnappschüssen benötigen, sollten Sie den Auswahlausdruck entsprechend ändern. -rDieser Befehl hat lediglich Auswirkungen auf den Dateinamen, der aufgrund von frame_pts gebildet wird. (Sie können die Warnung „ungültige Dateien“ ignorieren; sie ist für ein anderes Szenario gedacht.)

ffmpeg -copyts -i file.mp4 -vf "select=eq(n\,0)+gt(scene\,0.06)*gte(t-prev_selected_t\,1),scale='min(1280\, iw):-1'" -r 1 -vsync 0 -frame_pts 1 snapshot.1280.%04d.png

verwandte Informationen