Closed keisanng closed 1 year ago
I expect for the duration of watermark to be set to video.duration using the set_duration function.
watermark
video.duration
set_duration
I get the error "ValueError: Attribute 'duration' not set" and watermark duration prints as None.
ValueError: Attribute 'duration' not set
None
# Video I video = moviepy.concatenate_videoclips(resolved_video_clips, method="compose") video.resize((1280, 720)) print(video.duration) # Watermark if (len(config["generation"]["watermark"]) > 0): watermark = moviepy.TextClip(config["generation"]["watermark"], color="white", font="times", fontsize=120) watermark.set_position((0.5, 0.8), relative=True) # 50%w 80%h watermark.set_duration(video.duration) video = moviepy.CompositeVideoClip([video, watermark]) # Video II video.write_videofile(os.path.join("output", "videos", f"{config['metadata']['title']}.{config['metadata']['format']}"))
resolved_video_clips is a list ([]) of multiple VideoFileClip; config is a JSON file.
resolved_video_clips
[]
VideoFileClip
config
Note: watermark.duration = video.duration doesn't work either.
watermark.duration = video.duration
Fixed by assigning watermark.
watermark = watermark.set_position(...) watermark = watermark.set_duration(...)
Expected Behavior
I expect for the duration of
watermark
to be set tovideo.duration
using theset_duration
function.Actual Behavior
I get the error "
ValueError: Attribute 'duration' not set
" andwatermark
duration prints asNone
.Steps to Reproduce the Problem
resolved_video_clips
is a list ([]
) of multipleVideoFileClip
;config
is a JSON file.Note:
watermark.duration = video.duration
doesn't work either.Specifications