0

Can anyone help me to trim the audio file to match the video length? At the moment the video finishes at 8 seconds but it plays for 2min+

clip = VideoFileClip("video.mp4")
clip_duration = clip.duration

audioclip = AudioFileClip("huru.wav")
new_audioclip = CompositeAudioClip([audioclip])
clip.audio = new_audioclip


txt_clip = TextClip("Some Text",fontsize=70,color='black')
txt_clip = txt_clip.set_pos("bottom","center").set_duration(clip_duration)

video = CompositeVideoClip([clip, txt_clip])

video.write_videofile("video2.mp4")
nucky
  • 348
  • 5
  • 15
squidg
  • 451
  • 6
  • 17

1 Answers1

1

Instead of

audioclip = AudioFileClip("huru.wav")
new_audioclip = CompositeAudioClip([audioclip])
clip.audio = new_audioclip

try

audioclip = AudioFileClip("huru.wav").set_duration(clip_duration)
new_audioclip = CompositeAudioClip([audioclip])
clip = clip.set_audio(new_audioclip)

you can use set_start() too

lojza
  • 1,823
  • 2
  • 13
  • 23
  • With that code I get a value error of "requires_duration raise ValueError("Attribute 'duration' not set")" – squidg Mar 10 '21 at 07:32
  • Are you sure you have there `.set_duration(clip_duration)` ? On which clip it's not set? Can you set it? – lojza Mar 11 '21 at 14:28
  • ah perfect! Just had to also add it to output video: video = CompositeVideoClip([clip, txt_clip]).set_duration(clip_duration) – squidg Mar 11 '21 at 22:18