我实际上可以在视频中心添加叠加图像,从开始时间A到结束时间B.
在这里和那里阅读我尝试为我的叠加图像添加fade-in/fade-out
效果,但结果是我的最终视频中根本没有显示图像。
这是我的"实验":
-i output.mp4 -i 1.png -filter_complex "[1:v]format=rgba,scale=300:300,fade=in:st=0:d=1:alpha=1,fade=out:st=5:d=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h) / 2:enable='between(t,0,5)'" -pix_fmt yuv420p -c:a copy output_0.mp4
如果理解:
fade=in:st=0:d=1
表示图片应显示在0''具有1''的淡入效果持续时间
fade=out:st=5:d=1
意味着图像应该在5''具有淡出效果1''持续时间
不是吗?
第二部分是在淡入时添加图像的缩放效果,我可以将淡入效果和缩放效果结合起来吗?
我认为像这样的东西应该放大我的图像叠加3秒的持续时间,我可以将它添加到另一个","将滤镜分离到叠加的图像?
zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=3
由于
视频长达10秒。我希望图像以淡入淡出显示,并从0到5放大,另一个从5到10放大,效果相同
第1步:添加淡入淡出
-i 0_vid.mp4 -loop 1 -t 1 -i 1.png -filter_complex "[1:v]format=rgba,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4
使用这种解决方案,淡入效果有效,但甚至没有考虑淡出。
如果我添加缩放:
-i 0_vid.mp4 -loop 1 -t 1 -i 1.png -filter_complex "[1:v]format=rgba,zoompan=z='if(lte(zoom,1.0),1.5,max(1.3875,zoom-0.0015))':d=625,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4
这样,图像被拉伸全屏宽度并切割高度。但在5秒动画期间,图像不会正常调整大小。
我的目标是在视频中放大图像但不要剪切/拉伸。我希望图像在开始时看起来更小,在结束时看起来更大。有可能吗?
而且,淡出动画我做错了什么
答案 0 :(得分:0)
使用
ffmpeg -i output.mp4 -i 1.png -filter_complex "[1:v]format=rgba,scale=300:300,zoompan=z='if(lte(zoom,1.0),1.5,max(1.3875,zoom-0.0015))':d=125:s=300x300,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h) / 2:enable='between(t,0,5)'" -pix_fmt yuv420p -c:a copy output_0.mp4