moviepy 调整大小在某些尺寸下不起作用

moviepy resize not working in some sizes

我有一个 720x1280 的 mp4 视频,我想要不同尺寸的视频,例如: 0.66%、0.5% 和 0.33%。

我使用的每种尺寸:

clip = mp.VideoFileClip(file)
clip_resized1 = clip.resize(height=int(clip.h * float(0.66666))) 
clip_resized1.write_videofile(name + '-2x' + ext)

我对每种尺码都这样做,但有些有效,有些无效。 0.66 不起作用,就像 0.33 一样。 0.5% 效果很好。

它创建了各种尺寸的文件,但它们已损坏,无法打开(我说的 0.5 除外,它工作正常)。

有什么线索吗?在 Python 中调整大小有更好的解决方案吗?

我认为问题是如果剪辑的其中一个维度是奇数,大多数视频播放器都无法播放 mp4。例如,720x1280 适用于所有播放器,但 721x1280 只能在某些视频播放器(如 VLC)上播放。

因此,在写入视频文件之前,请确保 clip.h 和 clip.w 都一致。有几种方法可以做到这一点,要么自己指定剪辑的新尺寸,如 clip.resize((844, 476)),要么重新调整 66% 的剪辑尺寸并在顶部添加 1px 黑色边距,如 clip.resize(0.66).margin(top=1)