首页 > 解决方案 > moviepy 循环和 speedx 出现错误的问题:访问时间 t= 秒,剪辑持续时间= 秒

问题描述

我正在测试moviepy lib以制作蒙面视频以加快速度并循环播放,但我无法同时让这两个东西工作。我收到以下错误。

Python脚本:

video = ColorClip(color=(255, 255, 255), size=(1920, 1080))\
            .set_duration(15)\
            .set_fps(30)\
            .set_audio(None)

vtuber_clip = VideoFileClip(os.path.join(ASSETS_PATH, 'videos/test1.mp4'))

masked_clip = vtuber_clip.fx(mpe.vfx.mask_color, color=[0,214,11], thr=100, s=5)\
.set_pos(('right', 'bottom'))\
.fx(mpe.vfx.loop, n=3)\
.fx(mpe.vfx.speedx, 4)\
.set_duration(13)

final_clip = CompositeVideoClip([video, masked_clip])\
.set_duration(vtuber_clip.duration)

final_clip.write_videofile('test1.mp4')

错误:

File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site- 
      packages\moviepy\Clip.py", line 93, in get_frame
return self.make_frame(t)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site- 
      packages\moviepy\audio\io\AudioFileClip.py", line 77, in <lambda>
self.make_frame = lambda t: self.reader.get_frame(t)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site- 
      packages\moviepy\audio\io\readers.py", line 172, in get_frame
"with clip duration=%d seconds, "%self.duration)
OSError: Error in file D:\projects\program\assets\videos/test1.mp4, Accessing time 
         t=13.39-13.57 seconds, with clip duration=13 seconds, 

标签: pythonmoviepy

解决方案


推荐阅读