python - 创建一系列文本剪辑并使用 moviepy 将它们连接成视频

标签 python video-processing moviepy

  1. 在 MoviePy 中,有一个 API 可以从文本创建剪辑以及连接剪辑列表。
  2. 我正在尝试在循环中创建剪辑列表,然后尝试将它们连接起来。
  3. 问题是每次它都会创建一个 25 秒的视频文件,并且循环中仅包含最后一个文本。

这是代码

for text in a list:
    try:
        txt_clip = TextClip(text,fontsize=70,color='white')
        txt_clip = txt_clip.set_duration(2)
        clip_list.append(txt_clip)
    except UnicodeEncodeError:
        txt_clip = TextClip("Issue with text",fontsize=70,color='white')
        txt_clip = txt_clip.set_duration(2) 
        clip_list.append(txt_clip)
final_clip = concatenate_videoclips(clip_list)
final_clip.write_videofile("my_concatenation.mp4",fps=24, codec='mpeg4')

最佳答案

我无法重新创建您的问题(也许是因为我使用的列表没有引发异常?),但下面的代码块对我有用。与上面最显着的区别是我为 MoviePy 设置了一个选项来调整不同的帧大小。

from moviepy.editor import *

text_list = ["Piggy", "Kermit", "Gonzo", "Fozzie"]
clip_list = []

for text in text_list:
    try:
        txt_clip = TextClip(text, fontsize = 70, color = 'white').set_duration(2)
        clip_list.append(txt_clip)
    except UnicodeEncodeError:
        txt_clip = TextClip("Issue with text", fontsize = 70, color = 'white').set_duration(2) 
        clip_list.append(txt_clip)

final_clip = concatenate(clip_list, method = "compose")
final_clip.write_videofile("my_concatenation.mp4", fps = 24, codec = 'mpeg4')

如果您有一个引发 unicode 编码错误的示例,也许我能够重现您的问题。您可能会发现另一个问题很有用:How to concatenate videos in moviepy?

关于python - 创建一系列文本剪辑并使用 moviepy 将它们连接成视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429005/

相关文章:

android - Android OpenCV手势识别

python - 如何修复 "some_number bytes wanted, 0 bytes read error on moviepy vfx"

python - 无法在Python中使用OpenCV检测面部和眼睛

python - re{ n,} 和 re{ n, }

python - 创建我的自定义内核垫

页面上的 Javascript 阻止 Selenium 检测某些框架和元素

python - 如何确定视频的角速度?

ios - 在 IOS 应用程序中使用 FFMPEG 的可靠性?

python-3.x - Moviepy:向视频添加音频

video - FFmpeg - 将 1280x720 视频转换为 720x1280 视频并添加模糊