我想在不同时间在我的视频上叠加多个图像。我将用户功能定义为
function myFunction(clip c, int coordinateX, int from, int to) {
c = c.trim(0, from-1) + c.trim(from, to).Overlay(myImage, x=coordinateX, y=667, mask=myImageMask, opacity=1) + c.trim(to+1, 0)
return c
}
它基本上拍摄myImage
图像并将其放置在剪辑的特定部分。
我称我的功能为
video = video.myFunction(320, 1, 187)
我有一堆这样的(我正在尝试用多个图像制作某种动画)
video = video.myFunction(320, 1, 187)
video = video.myFunction(480, 1, 187)
video = video.myFunction(640, 1, 187)
video = video.myFunction(320, 187, 374)
video = video.myFunction(480, 187, 374)
video = video.myFunction(640, 187, 374)
video = video.myFunction(319, 374, 561)
如果这些电话少于约 400 个,一切正常。如果超过该限制,则会发生“内存不足”(我正在使用 VirtualDub)。
我想这是因为 AviSynth 必须处理所有调用以找出输出(尽管这 100 次调用中只有约 3次与特定的单帧相关)。video =
但是,如果我在行首删除,我可以有 10000 个,并且没有“内存不足”错误,但我当然没有视频输出。
有解决办法吗?视频剪辑上不同时间的成百上千的图像叠加?