gpt4 book ai didi

FFMPEG - 我如何获得这些重叠视频的边界

转载 作者:行者123 更新时间:2023-12-04 23:12:41 33 4
gpt4 key购买 nike

下面包含的批处理源在主视频的顶部覆盖了 2 个“特色视频”。特征以不同的时间间隔淡入和淡出。

@set "Args="
@set "Args=%Args% [1:v]scale=480:270,fade=in:st=5:d=1:alpha=1, fade=out:st=15:d=1:alpha=1[ovr1];"
@set "Args=%Args% [2:v]scale=480:270,fade=in:st=10:d=1:alpha=1, fade=out:st=20:d=1:alpha=1[ovr2];"
@set "Args=%Args% [0:v][ovr1] overlay=W/12:H/12[tmp1];"
@set "Args=%Args% [tmp1][ovr2] overlay=W/6+100:H/6+100"

call ffmpeg -y ^
-i "Vid0.mp4" ^
-i "Vid1.mp4%" ^
-i "Vid2.mp4%" ^
-filter_complex "%Args%" ^
"Output.mp4

这符合我的预期,但我想在视频周围添加边框,最好不要影响图像的缩放大小,即裁剪特征视频然后填充,以便保留特征的显示大小。

我试过这个:
@set "Args="
@set "Args=%Args% [1:v]pad=width=iw-(iw/100):height=ih-(ih/50):x=iw/200:y=ih/100:color=violet[pad1];"
@set "Args=%Args% [pad1]scale=480:270,fade=in:st=5:d=1:alpha=1, fade=out:st=15:d=1:alpha=1[ovr1];"
@set "Args=%Args% [2:v]scale=480:270,fade=in:st=10:d=1:alpha=1, fade=out:st=20:d=1:alpha=1[ovr2];"
@set "Args=%Args% [0:v][ovr1] overlay=W/12:H/12[tmp1];"
@set "Args=%Args% [tmp1][ovr2] overlay=W/6+100:H/6+100"

确定我想在淡入/淡出之前应用边框,以便它与包含的图像一起淡出。但我得到这个错误:
Input area -10:-12:1910:1068 not within the padded area 0:0:1900:1058 or zero-sized
所以我知道我对垫过滤器的理解是不完整的。有人可以帮忙吗?

实际上,在重新阅读该问题时,我发现我对垫要求的措辞令人困惑。我想要做的是让填充侵占特征视频,即如果特征视频为 1920x1080,则应将图像裁剪为 1910x1070 并添加 5 像素边框,以便生成的图像恢复为 1920x1080。然后将该图像呈现给缩放过滤器。

最佳答案

垫式过滤器只能增加或保持框架尺寸,不能减少它们。所以,你必须先裁剪框架,然后填充它。

所以,

[1:v]pad=width=iw-(iw/100):height=ih-(ih/50):x=iw/200:y=ih/100:color=violet[pad1]

变成
[1:v]crop=iw-10:ih-10,pad=w=iw+10:h=ih+10:x=-1:y=-1:color=violet[pad1]

裁剪过滤器首先从宽度和高度中删除 10 个像素。它将在所有方面统一执行此操作,因为这是默认行为。然后垫加回 10 个像素。通过将 x 和 y 设置为 -1*,它将在新的填充帧中居中输入帧。

如果您的 ffmpeg 版本较旧,请使用 x=(ow-iw)/2y=(oh-ih)/2 .

关于FFMPEG - 我如何获得这些重叠视频的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62356537/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com