我尝试在视频剪辑之间使用滑入和滑出转换,但运气不好,我只能使用crossfadein这样做:
from moviepy.editor import VideoFileClip, concatenate_videoclips, vfx, afx, transfx, concatenate,
CompositeVideoClip
delay = 1
output = "out.mp4"
clip1 = VideoFileClip("174_3.mp4")
clip2 = VideoFileClip("174_4.mp4")
clip3 = VideoFileClip("174_5.mp4")
clip4 = VideoFileClip("174_6.mp4")
final = concatenate([clip1,
clip2.crossfadein(delay),
clip3.crossfadein(delay),
clip4.crossfadein(delay)],
padding=-delay, method="compose")
final.write_videofile(output)
^{pr2}$
这个结果是视频连接,但根本不是过渡,请让我知道我做错了什么
请记住,moviepy中的大多数函数不会修改对象,而是返回对象的一个修改过的浅层副本,因此
CompositeVideoclip(clips)
行不做任何事情。在相反,你想做的是:
slided_clips = [CompositeVideoClip([clip.fx( transfx.slide_out, 1, 'bottom')]) for clip in clips]
slide_out
必须在CompositeVideoClip中的原因是它改变了剪辑的位置,所以它需要在一个“帧”中才能使部分屏幕空白。这也是为什么set_position
只能与CompositeVideoClip一起工作的原因。在相关问题 更多 >
编程相关推荐