FFMPEG 缩放平移多个图像



>我正在尝试拼接多个图像,并在图像上进行一些缩放平移以创建视频。

命令:-

ffmpeg -f lavfi -r 30 -t 10 -i 
color=#000000:1920x1080 
-f lavfi 
-r 30 -t 10 
-i aevalsrc=0 
-i "image-1.png" 
-i "image-2.png" 
-y -filter_complex 
"[0:v]fifo[bg];
[2:v]setpts=PTS-STARTPTS+0/TB,scale=4455:2506:force_original_aspect_ratio=decrease,zoompan=z='min(zoom+0.0015,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps='30':s='1920x1080'[v2];
[bg][v2]overlay=0:0:enable='between(t,0, 5)'[bg];
[3:v]setpts=PTS-STARTPTS+5.07/TB,scale=3840:2160:force_original_aspect_ratio=decrease,zoompan=z='min(zoom+0.0015,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps='30':s='1920x1080'[v3];
[bg][v3]overlay=0:0:enable='between(t,5, 10)'[bg];
[1:a]amix=inputs=1:duration=first:dropout_transition=0" 
-map "[bg]" -vcodec "libx264" -preset "veryfast" -crf "15" "output.mp4"

输出与预期不符,它仅在第一个图像上缩放,第二个图像只是静态的。

FFMPEG 版本 - 4.1

使用

ffmpeg -f lavfi -i color=#000000:1920x1080:r=30:d=10 
       -f lavfi -t 10 -i anullsrc 
       -i "image-1.png" 
       -i "image-2.png" 
       -filter_complex 
"[2:v]scale=4455:2506:force_original_aspect_ratio=decrease,zoompan=z='min(zoom+0.0015,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps=30:s='1920x1080'[v2];
 [bg][v2]overlay=0:0:enable='between(t,0,5)'[bg];
 [3:v]scale=3840:2160:force_original_aspect_ratio=decrease,zoompan=z='min(zoom+0.0015,2.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=150:fps=30:s='1920x1080',setpts=PTS+5/TB[v3];
 [bg][v3]overlay=0:0:enable='between(t,5,10)'[bg];
-map "[bg]" -map 1:a -vcodec libx264 -preset veryfast -crf 15 -y "output.mp4"

对于 lavfi 源,最好在滤镜中设置适用的帧速率和持续时间。

由于您没有循环播放图像,因此-t不会产生任何影响。由于缩放平移将在其输出中设置 fps,因此您可以跳过输入速率设置。由于它是单个图像,因此在缩放之前设置无关紧要。它应仅在需要移动时间戳的缩放平移上设置。

由于您只有一个音频,因此将其发送到混音没有意义 - 没有什么可混音的!只需直接映射即可。

最新更新