Zulko / moviepy

Video editing with Python
https://zulko.github.io/moviepy/
MIT License
12.07k stars 1.51k forks source link

AttributeError: 'NoneType' object has no attribute 'end' #2141

Closed April-ying closed 3 months ago

April-ying commented 3 months ago

code:

source_video_filename = "040ooo.mp4" background_music_filename = "calm-background-for-video-121519.mp3" target_video_with_subtitle= "040ooo_subtitle.mp4"

lines = [msg for msg in subtitles.split('\n') if len(msg)>0] speech= []

for i,msg in enumerate(lines): ts.text_to_mp3(msg,'subtitle-voiceover-{:04d}.mp3'.format(i))
speech.append(AudioFileClip('subtitle-voiceover-{:04d}.mp3'.format(i)))

duration = np.array([0]+[s.duration for s in speech])
cumduration = np.cumsum(duration) total_duration = int(cumduration[-1])+4

generator = lambda txt: TextClip(txt, font='msjh.ttc', fontsize=32, color='white') subtitles = SubtitlesClip([((cumduration[i],cumduration[i+1]),s) for i,s in enumerate(lines)], generator)

clip = VideoFileClip(source_video_filename) clip = clip.fx(vfx.speedx,clip.duration/total_duration)

final_clip = CompositeVideoClip([clip, subtitles.set_pos(('center','bottom'))])

background_music = AudioFileClip(background_music_filename) baudio1 = background_music.subclip(background_music.duration-total_duration).volumex(0.2)

final_clip = final_clip.set_audio(CompositeAudioClip([clip.audio,baudio1,concatenate_audioclips(speech)]))

final_clip.write_videofile(target_video_with_subtitle)

error: Traceback (most recent call last): File "c:\Users\April\OneDrive\文件\桌面\machine_visual\audio.py", line 88, in final_clip = final_clip.set_audio(CompositeAudioClip([clip.audio,baudio1,concatenate_audioclips(speech)])) File "C:\Users\April\anaconda3\envs\class3637\lib\site-packages\moviepy\audio\AudioClip.py", line 286, in init ends = [c.end for c in self.clips] File "C:\Users\April\anaconda3\envs\class3637\lib\site-packages\moviepy\audio\AudioClip.py", line 286, in ends = [c.end for c in self.clips] AttributeError: 'NoneType' object has no attribute 'end' Exception ignored on calling ctypes callback function: <function catch_errors..call_with_this at 0x0000028340C627A0> Traceback (most recent call last): File "C:\Users\April\anaconda3\envs\class3637\lib\site-packages\comtypes_comobject.py", line 113, in call_with_this File "C:\Users\April\anaconda3\envs\class3637\lib\logging__init.py", line 1505, in error File "C:\Users\April\anaconda3\envs\class3637\lib\logging\init__.py", line 1734, in isEnabledFor TypeError: 'NoneType' object is not callable

moviepy:1.0.3 python:3.10.13 How can i solve those problems?