最近想在电脑自己实现一个视频转GIF工具(保护隐私,还没水印),于是打算使用python的moviepy库,代码如下。
from moviepy.editor import VideoFileClip
name = "1"
# 加载视频文件
clip = VideoFileClip("C:\\Users\\19700\Desktop\\{}.mp4".format(name))
print(clip.size)
# 调整视频像素大小
clip_resized = clip.resize(newsize=(480, 270))
# # 将视频转换为GIF并调整帧率
clip_resized.write_gif(f"C:\\Users\\19700\\Desktop\\{name}.gif", fps=15)
然而在运行的时候出现"AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'"错误
原因是moviepy库在2020年就停止维护了,而它借助的Pillow库还在持续维护,从7.0.0版本开始ANTIALIAS
常量已经不存在了。
然而python311不支持安装Pillow低于7.0.0版本的库(也不想重装python)
解决方式: 找到以下路径的python文件(moviepy库的文件)
C:\Users\19700\AppData\Local\Programs\Python\Python311\Lib\site-packages\moviepy\video\fx\resize.py
将37行的 Image.ANTIALIAS 改成 Image.Resampling.LANCZOS
(Image.ANTIALIAS
是一个选项,用于在调整图像大小时指定高质量的下采样滤波器。在最新版本的 Pillow(Pillow 7.0.0 及更高版本)中,它已被 Image.Resampling.LANCZOS
替换。)
修改后重启python后再运行就成功啦!