小图像应以简单的方式在背景视频上进行动画处理:
我打算使用的过滤器:
我的过滤器图:
video.avi >----------------------------------->|-------|
|overlay|-> out.mp4
image.png >-> scale >-> zoompan >-> zoompan >->|-------|
问题是timeline editing。这两个过滤器都支持enable
选项。我想我可以添加像enable='between(n, 11, 31)'
这样的说明,以便在适当的时间“放置”动画。
显示图像输入只有两个值n
:0和1.通过在n
过滤器中将print(n)
包裹zoompan
并在渲染过程中输出来检查。
在overlay
内部过滤器中,相反,n
按预期输出数字序列。
问题:如何将单张图像输入“看起来”像普通视频流到ffmpeg过滤器 - 这样每个生成的帧都有其唯一的数字?
最新测试之一。视频为hd720,图像为1000x200透明png,徽标占据中心约150x50区域,放大时不会被裁剪掉。
ffmpeg -i $FOOTAGE -loop 1 -i $IMAGE -filter_complex \
"
[1:v]
scale=10*iw:-2
,zoompan=
z='1'
:x='iw/2-(iw/zoom/2)+80'
:y='ih/2-(ih/zoom/2)'
:d=26
:s=500x100
:enable='lt(print(n),24)'
,zoompan=
z='min(zoom+1.3/18,2.3)'
:x='iw/2-(iw/zoom/2)'
:y='ih/2-(ih/zoom/2)'
:d=20
:s=500x100
:enable='between(n,24,42)'
[name];
[0:v][name]
overlay=
x=1005-250
:y=406-50
:enable='lte(n,173)'
" -t 7 -y -hide_banner out.mp4