我目前正在尝试使用 moviepy 在视频上刻录字幕。但是,无论我做什么,我都会收到相同的错误消息。这是我正在使用的代码:
from moviepy import TextClip
from moviepy.video.tools.subtitles import SubtitlesClip
...
generator = lambda txt: TextClip(
text = self.txt,
font = self.font_path,
font_size = 100,
color= self.text_color,
stroke_color="black",
stroke_width=5,
)
subtitles = SubtitlesClip(self.subtitles_path, generator)
其中 self.font_path 当前是字符串“/fonts/my_font.otf”。但是,无论字体如何,我都会不断收到错误消息:
ValueError: Invalid font <function _spyderpdb_code.<locals>.<lambda> at 0x7b89f4d60e00>, pillow failed to use it with error 'function' object has no attribute 'read'
该功能的示例似乎是错误的。
您可能需要
subtitles = SubtitlesClip(self.subtitles_path, make_textclip=generator)
即将您的
generator
作为 make_textclip
传递,而不是作为位置 font
参数。