如何使用 ffmpeg 创建抖动覆盖?

如何使用 ffmpeg 创建抖动覆盖?

我刚刚在 YouTube 上找到了这个视频,其中有一个带有移动网格的分屏。我想知道如何使用 ffmpeg 创建像视频中一样的移动分屏。

视频链接

这就是我想要实现的目标:

在此处输入图片描述


你似乎误解我了,我研究了这个视频代码我的问题是我不知道像那个视频那样的 png 循环。

    ffmpeg -i video.mp4 -i nen.png  -filter_complex "overlay=x=0:y='if(gte(t,0), -w+(t)*800, 3)'" out.mp4

插图

我尝试过,loop -1 and overlay:shortest=1但失败了

您可以为我循环显示覆盖吗?

答案1

您需要使用复杂的过滤器:

ffmpeg -f lavfi -i "\
movie=input-1.mp4,scale=960:540[v1]; \
movie=input-2.mp4,scale=960:540[v2]; \
movie=input-3.mp4,scale=1920:540[v3]; \
[v1][v2]hstack[hstack]; \
[hstack][v3]vstack[stack]; \
movie=grid.png[grid]; \
[stack][grid]overlay=y='5*sin(0.1*n)'[outv]" \
-map "[outv]" \
output.mp4

假设您有三个输入视频(input-1.mp4input-3.mp4),分别是scaled在这个例子中,只是为了让它们达到网格的正确尺寸。然后将它们水平放置,垂直stack编辑叠加在一起,得到标记为 的 1920⨉1080 输出视频stack

现在您有一个grid.png透明的覆盖层,其尺寸也必须是 1920⨉1080。当然,您必须使用一些图像编辑器自己创建此网格。

这个网格将overlay位于堆栈顶部,但其y坐标将根据输出而变化正弦函数可以通过改变函数前面的参数n(即帧数)来调整运动的速度,通过改变函数前面的参数来调整运动的幅度sin

当然,如果您想要更随机的运动,您可以另外使用该功能修改位置random

相关内容