Eine Möglichkeit besteht darin, aus jedem Bild ein Video zu erstellen und dann alle zu kombinieren. Mit können mencoder
Sie folgendes tun:
Dadurch wird ein Video mit 1 Bild pro Sekunde erstellt aus image.jpg
:
mencoder "mf://image.jpg" -ovc x264 -mf fps=1 -o output.avi
Dies wird zwei Videos aufnehmen und verschmelzen sie zu einem:
mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi
Es könnte so aussehen. Jede Zeile durations.txt
enthält eine Dauer (in Millisekunden hier), und Bilder werden wie in Ihrem Beispiel benannt. Dies ist als Beispiel gedacht und funktioniert möglicherweise nicht wie dargestellt:
i = 0 while read line; do padded = $(printf "%04d\n" $i) fps = $(echo "scale=3; 1/$i/1000" | bc -q 2>/dev/null) if [ i -eq 0 ]; then mencoder "mf://image$padded.jpg" -ovc x264 -mf fps=$fps -o previous.avi else mencoder "mf://image$padded.jpg" -ovc x264 -mf fps=$fps -o next.avi mencoder -ovc copy -oac copy previous.avi next.avi -o building.avi rm previous.avi mv building.avi previous.avi fi i = $[i + 1]; done < durations.txt
Das ffmpeg
Tool hat ähnliche Funktionen:
ffmpeg -loop 1 -i img.png -c:v libx264 -t 30 -pix_fmt yuv420p out.mp4 ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg