Wie kann ich mit FFMPEG ein Video mit einer einzigen Volltonfarbe erstellen, die sich in Intervallen ändert?

Wie kann ich mit FFMPEG ein Video mit einer einzigen Volltonfarbe erstellen, die sich in Intervallen ändert?

Zu Testzwecken möchte ich ein Video erstellen, das bei jedem Bild mit 10 fps zwischen einer durchgehend schwarzen und einer durchgehend weißen Farbe wechselt. Wie kann ich dies mit FFMPEG erreichen?

Antwort1

Die oberflächliche Antwort ist: „Verbringen Sie drei Stunden damit, zu studieren, wie FFMPEG-Filter funktionieren“ – das habe ich heute zum Spaß getan, also habe ich diese Frage als Herausforderung genutzt.

Es scheint, als gäbe es mehrere Möglichkeiten, zum Ergebnis zu gelangen, aber das Folgende hat bei mir funktioniert:

  1. Generieren Sie ein Schwarzbild und ein Weißbild und benennen Sie sie img-001.pngund img-002.png.

  2. Verwenden Sie die Funktion ffmpegvon -loop, die ich gelernt habe ausDiese Antwort gilt nur für die Bild-zu-Video-Arbeit

Bilder erzeugen:

ffmpeg -f lavfi -i color=black:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-001.png

ffmpeg -f lavfi -i color=white:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-002.png

Lassen Sie diese Bilder 30 Sekunden lang mit 10 fps in einer Schleife abspielen:

ffmpeg -loop 1 -i 'img-%03d.png' -r 10 -t 30 -vf format=yuv420p -y out.mp4

ffprobemeldet diese Metadaten:

(edited for clarity)
Duration: 00:00:30.00, start: 0.000000, 
Video: h264 (High) yuv420p
1920x1080 [SAR 1:1 DAR 16:9], 20 kb/s, 10 fps

Dieser Kernpunkt hat einen anderen Ansatzdas verwendet filter_complex. Obwohl es nicht genau dasselbe macht, könnte es für diese Aufgabe angepasst werden.

verwandte Informationen