微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每当尝试将 write_videofile 运行到 moviepy 中的剪辑时,都会收到“TypeError: must be real number, not NoneType”

如何解决每当尝试将 write_videofile 运行到 moviepy 中的剪辑时,都会收到“TypeError: must be real number, not NoneType”

示例代码

from moviepy.editor import *
clip = VideoFileClip('video.mp4')
clip.write_videofile('video2.mp4',fps=30)

显示以下消息后,表示正在构建和编写视频,

Moviepy - Building video video2.mp4.
Moviepy - Writing video video2.mp4

出现以下错误信息:

Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
  File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py",line 232,in fun
    return caller(func,*(extras + args),**kw)
  File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\decorators.py",line 54,in requires_duration
    return f(clip,*a,**k)
  File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py",line 135,in use_clip_fps_by_default
    return f(clip,*new_a,**new_kw)
  File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py",line 22,in convert_masks_to_RGB
    return f(clip,**k)
  File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\video\VideoClip.py",line 300,in write_videofile
    ffmpeg_write_video(self,filename,fps,codec,File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\video\io\ffmpeg_writer.py",line 213,in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename,clip.size,codec = codec,line 88,in __init__
    '-r','%.02f' % fps,TypeError: must be real number,not nonetype

每当我尝试对 moviepy 中的任何类型的剪辑执行 write_videofile 时都会发生这种情况。很奇怪,因为昨天完全相同的代码我有用,但今天突然不行了。是否有任何建议是什么原因以及如何解决此问题?

解决方法

尝试升级您的电影包

pip install moviepy --upgrade

我在 1.0.0 中遇到了同样的问题。升级到 1.0.3 解决了这个问题。

,

pip install moviepy --upgrade 我花了很长时间。终于,这句话解决了问题。

,

在这里回复 sh37211 的评论(不幸的是,我没有足够的声誉来发表评论。)我已经有了 moviepy 1.0.3,但运行 pip install moviepy --upgrade 对我也有用 - 看起来足以更新 moviepy 的依赖项(装饰器 (5.0.9>4.4.2) 和 imageio (2.4.1>2.9.0)).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。