如何在MoviePy中使用clips_array垂直堆叠视频?
用MoviePy实现视频垂直堆叠的修改方案
核心修改点
要把横向堆叠改成垂直堆叠,只需调整clips_array的二维数组结构:
- 原代码中
[[clip1, clip2]]是一行两列的布局,对应横向并排; - 改成
[[clip1], [clip2]]即两行一列的布局,就能实现上下垂直堆叠。
适配尺寸调整
原代码的resize和crop是针对横向堆叠的尺寸设计的,垂直堆叠后视频的宽高比和整体尺寸变化,需要同步调整:
- 垂直堆叠后,视频总高度是两个原视频高度之和,宽度与原视频一致;
- 若仍需输出高度为1920的视频,调整
resize参数即可,原横向裁剪逻辑不再适用(如需裁剪可针对垂直方向调整)。
修改后的完整代码
from conf import SAMPLE_INPUTS, SAMPLE_OUTPUTS from moviepy.editor import * length = 10 clip1 = VideoFileClip('vid1.mp4').subclip(0, length) clip2 = VideoFileClip('vid2.mp4').subclip(0, length) # 改为垂直堆叠的布局结构 combined = clips_array([[clip1], [clip2]]) # 调整视频高度到目标值1920,宽度会按比例自动适配 combined = combined.resize(height=1920) # 若无需裁剪可删除原crop代码,如需垂直裁剪可参考示例(按需调整参数) # combined = combined.crop(x1=0, y1=0, x2=combined.w, y2=1920) combined.write_videofile('test_vertical.mp4')
内容的提问来源于stack exchange,提问作者AceHeister
相关产品推荐
相关产品推荐

