
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:
Generieren Sie ein Schwarzbild und ein Weißbild und benennen Sie sie
img-001.png
undimg-002.png
.Verwenden Sie die Funktion
ffmpeg
von-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
ffprobe
meldet 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.