簡體   English   中英

Moviepy 交換文本中間視頻

[英]Moviepy swap text mid video

我想在視頻中寫入文本並讓它在播放中更改,這是我嘗試過的,但它會將每個文本疊加在彼此上並且只顯示文本 5 秒?

def generateVideo(initial_text, secondary_text, tertiary_text):
    text_clip = TextClip(txt=initial_text, color='AntiqueWhite1', font='Arial-Bold', fontsize=100)
    text_clip = text_clip.set_position('center').set_duration(5)

    text_clip_secondary = TextClip(txt=secondary_text, color='AntiqueWhite1', font='Arial-Bold', fontsize=100)
    text_clip_secondary = text_clip_secondary.set_position('center').set_duration(10).cutout(0, 5)

    text_clip_tertiary = TextClip(txt=tertiary_text, color='AntiqueWhite1', font='Arial-Bold', fontsize=100)
    text_clip_tertiary = text_clip_tertiary.set_position('center').set_duration(15).cutout(0, 10)
    
    new_video = ColorClip(size=(1920, 1080), color=(0,0,0), duration=15)
    new_video.fps = 24
    
    new_video = CompositeVideoClip([new_video, text_clip, text_clip_secondary, text_clip_tertiary])

    new_video.write_videofile(codec='mpeg4', filename="test.mp4")
    new_video.close()

有人看到我做錯了什么嗎?

編輯:我也嘗試了對 subclip(pos1, pos2) 的適當調用,即

text_clip_secondary = text_clip_secondary.set_position('center').set_duration(15).subclip(5, 10)

結果相同

看起來cutout() 和 subclip() 都不能與 TextClip() 一起使用,所以我在圖書館里挖了一下,發現set_start()似乎有效

前任:

text_clip = TextClip(txt=initial_text, color='AntiqueWhite1', font='Arial-Bold', fontsize=100)
text_clip = text_clip.set_position('center').set_duration(5)

text_clip_secondary = TextClip(txt=secondary_text, color='AntiqueWhite1', font='Arial-Bold', fontsize=100)
text_clip_secondary = text_clip_secondary.set_position('center').set_duration(5).set_start(5)

這可能是故意的,但我不明白 TextClip 如何是 VideoClip 的子類,也許它將在以后的修訂中修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM