首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每当试图对moviepy中的剪辑运行write_videofile时,都会收到"TypeError:必须是实数,而不是NoneType“的提示。

每当试图对moviepy中的剪辑运行write_videofile时,都会收到"TypeError:必须是实数,而不是NoneType“的提示。
EN

Stack Overflow用户
提问于 2021-06-18 17:42:19
回答 7查看 1.4K关注 0票数 3

示例代码:

代码语言:javascript
运行
复制
from moviepy.editor import *
clip = VideoFileClip('video.mp4')
clip.write_videofile('video2.mp4', fps=30)

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

代码语言:javascript
运行
复制
Moviepy - Building video video2.mp4.
Moviepy - Writing video video2.mp4

出现以下错误消息:

代码语言:javascript
运行
复制
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 232, in fun
    return caller(func, *(extras + args), **kw)
  File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\decorators.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 232, in fun
    return caller(func, *(extras + args), **kw)
  File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB
    return f(clip, *a, **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, fps, codec = codec,
  File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 88, in __init__
    '-r', '%.02f' % fps,
TypeError: must be real number, not NoneType

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

EN

回答 7

Stack Overflow用户

发布于 2021-07-05 16:33:44

试着升级你的电影包

代码语言:javascript
运行
复制
pip install moviepy --upgrade

我在1.0.0版本中也遇到了同样的问题。升级到1.0.3修复了这个问题。

票数 3
EN

Stack Overflow用户

发布于 2021-09-07 05:33:09

我也遇到了同样的问题,即使是1.0.3。在我的例子中,我是通过在带有brew reinstall ffmpeg的Homebrew上重新安装ffmpeg来让它工作的。

票数 2
EN

Stack Overflow用户

发布于 2021-11-20 04:52:42

当我尝试使用clip.ipython_display在Jupyter笔记本中显示视频剪辑时,我也遇到了同样的问题(即使是moviepy的1.0.3版本)。

在我的例子中,问题是moviepy检测到的FFmpeg版本是ffmpeg-imageio (不管是什么)。

正如moviepy的installation page所描述的,你基本上可以做两件事:

  • 使用FFMPEG_BINARY环境变量传递要使用的FFmpeg二进制文件的位置。
  • 编辑文件config_defaults.py并将该变量设置为二进制文件的位置。

在这两种情况下,您都需要重新启动进程/内核才能产生效果。在我的例子中,我在我的虚拟环境文件夹(在Linux上)中找到了config_defaults.py

代码语言:javascript
运行
复制
<project dir>/.venv/lib/python3.7/site-packages/moviepy/config_defaults.py
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68032884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档