Mein Ziel ist es, Clips zu nehmen, die länger als 40 Sekunden dauern, und sie auf einen Hintergrund zu legen und dann die Gesamtzeit zu kürzen, sobald die Clips und der Hintergrund ausgeblendet sind. Es funktioniert großartig, außer dass die Suche bis zu 24 Sekunden dauert, selbst wenn ich 21 angebe.
ffmpeg -y -framerate 60 -loop 1 -ss 0 -t 21 -i ~/Desktop/FP2.tiff -ss 0 -t 21 -i ~/Desktop/fp.mov -lavfi \
"[0]fade=t=in:st=0:d=1,fade=t=out:st=20:d=1,trim=end=21[bg]; \
[1:v]setpts=(PTS-STARTPTS)+1/TB,fifo,fade=t=in:st=1:d=2,fade=t=out:st=15:d=2[fade]; \
[bg][fade]overlay=10:(main_h-overlay_h)/2:format=rgb[v1]; \
[1:v]setpts=(PTS-STARTPTS)+3/TB,fifo,fade=in:0:120,fade=t=out:st=18:d=2[v2]; \
[v1][v2]overlay=460:(main_h-overlay_h)/2:format=rgb[video]; \
[1:a]adelay=1000|1000,stereotools=muter=1,afade=t=in:st=1:d=2,afade=t=out:st=15:d=2[a1]; \
[1:a]adelay=3000|3000,stereotools=mutel=1,afade=t=in:st=3:d=2,afade=t=out:st=18:d=2[a2]; \
[a1][a2]amix=inputs=2[audio]" \
-map [video] -map [audio] -c:v ffv1 -level 3 -c:a pcm_s16be ~/Desktop/filtergraph.nut
Sie können dies in ffplay sehen; Der Hintergrund wird bei der 21-Sekunden-Marke vollständig ausgeblendet, aber das Video selbst endet bei 24 Sekunden. Wie bringe ich sie dazu, genau zusammenzupassen? Mir ist bewusst, dass ich -ss
und -t
nach den Eingaben verwenden kann, aber diese Methode kann langsam sein, wenn Sie beabsichtigen, einen Startpunkt nach 0 zu verwenden.
Sie speisen 21 Sekunden Audio aus der Videodatei ein und wenden dann adelay=3000|3000
an, also 24 Sekunden. Fügen Sie atrim=end=21
am Ende zu Ihren beiden Audio-Filterketten hinzu.
Und
Fügen Sie shortest=1
beide Overlays hinzu.
Gyan
-t 21
.