Iam trying to put each clip inside a file into one clip using moviepy library
from moviepy.editor import VideoFileClip, concatenate_videoclips
import os
import cv2
clips = []
for filename in os.listdir(r'clips//'):
clips.append(filename)
print(clips)
finalVideo = concatenate_videoclips(f'clips//{clips}')
finalVideo.write_videofile('finalVideo.mp4')
However, i get this error:
File "C:/Users/myalt/OneDrive/Desktop/pythonProject2/main.py", line 11, in <module>
finalVideo = concatenate_videoclips(f'clips//{clips}')
File "C:\Users\myalt\OneDrive\Desktop\pythonProject2\venv\lib\site-packages\moviepy\video\compositing\concatenate.py", line 71, in concatenate_videoclips
tt = np.cumsum([0] + [c.duration for c in clips])
File "C:\Users\myalt\OneDrive\Desktop\pythonProject2\venv\lib\site-packages\moviepy\video\compositing\concatenate.py", line 71, in <listcomp>
tt = np.cumsum([0] + [c.duration for c in clips])
AttributeError: 'str' object has no attribute 'duration'
What about something like:
clips = []
clipPaths = [] #If you want to store the paths as well
for filename in os.listdir(r'clips//'):
#clips.append(filename)
clip = VideoFileClip(filename)
clips.append(clip)
clipPaths.append(filename)
https://zulko.github.io/moviepy/examples/quick_recipes.html
https://zulko.github.io/moviepy/getting_started/compositing.html
(May have to tweak the path)