繁体   English   中英

如何解决moviepy中的ValueError?

[英]how to solve ValueError in moviepy?

我正在 python 3.6 中使用 moviepy 制作带字幕的视频。

from moviepy.video.tools.subtitles import SubtitlesClip
from moviepy.video.io.VideoFileClip import VideoFileClip
generator = (lambda txt: TextClip(txt, font='Georgia-Regular', fontsize=24, color='white'))
subtitles = SubtitlesClip("sub.md", generator)
myvideo = VideoFileClip("video.mp4")
final = CompositeVideoClip([myvideo, subtitles])
final.write_videofile("final.mp4", fps=myvideo.fps)

我收到一个错误:

self.duration = max([tb for ((ta,tb), txt) in self.subtitles])
ValueError: max() arg is an empty sequence

查看此示例代码,看看是否有可以从中得出更正的提示。 我还删除了指向 moviepy 的 GitHub 错误 repo 的链接。

def add_text_to_movie(movie_fol, movie_name, out_movie_name, subs, fontsize=50, txt_color='red', font='Xolonium-Bold'):
        from moviepy import editor
    
        def annotate(clip, txt, txt_color=txt_color, fontsize=fontsize, font=font):
            """ Writes a text at the bottom of the clip. """
            txtclip = editor.TextClip(txt, fontsize=fontsize, font=font, color=txt_color)
            cvc = editor.CompositeVideoClip([clip, txtclip.set_pos(('center', 'bottom'))])
            return cvc.set_duration(clip.duration)
    
        video = editor.VideoFileClip(op.join(movie_fol, movie_name))
        annotated_clips = [annotate(video.subclip(from_t, to_t), txt) for (from_t, to_t), txt in subs]
        final_clip = editor.concatenate_videoclips(annotated_clips)
        final_clip.write_videofile(op.join(movie_fol, out_movie_name))

https://github.com/Zulko/moviepy/issues/283

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM