Надеюсь, вопрос достаточно ясен. В основном у меня есть массив «output», содержащий все папки, которые я буду использовать (как показано ниже):
output = ['folder1', 'folder2', 'folder3', 'folder4']
Я хочу создать видео для всех подпапок. Я могу сделать это, если я просто создаю видео со всеми видео, но не тогда, когда я хочу создать видео из видео каждой папки. следующий код, который я использовал для компиляции всех файлов .mp4 в одно видео:
from moviepy.editor import *
import os
from natsort import natsorted
L =[]
for root, dirs, files in os.walk("/media/pi/videos"):
#files.sort()
files = natsorted(files)
for file in files:
if os.path.splitext(file)[1] == '.mp4':
filePath = os.path.join(root, file)
video = VideoFileClip(filePath)
L.append(video)
final_clip = concatenate_videoclips(L)
final_clip.to_videofile("output.mp4", fps=24, remove_temp=False)
Но когда я пытаюсь сделать то же самое в течение l oop, я получаю ошибки и не могу получить свою оглянись, что не так. Любая помощь искренне ценится. Вот код, который я пытался заставить работать:
output.sort()
for i in output:
if not i == 'System Volume Information':
path2 = '/media/pi/videos/%s' % i
L =[]
for root, dirs, files in os.walk(path2):
#files.sort()
files = natsorted(files)
for file in files:
if os.path.splitext(file)[1] == '.mp4':
filePath = os.path.join(root, file)
video = VideoFileClip(filePath)
L.append(video)
final_clip = concatenate_videoclips(L)
final_clip.to_videofile("output.mp4", fps=24, remove_temp=False)
По сути, я пытаюсь объединить определенное количество видео. Я переименовал все мои файлы .mp4 в "1.mp4" "2.mp4" "3.mp4" и т. Д. c, и я пытаюсь сделать так, чтобы код объединял, скажем, 5 файлов .mp4 для 1 видео и go в течение l oop, пока не будет больше видео для объединения. Это единственный способ, которым я мог думать об этом. Я создал подпапки, содержащие 5 файлов .mp4, и теперь я пытаюсь объединить эти видео для каждой папки. Я полагаю, что это не очень эффективно, так что любой лучший совет будет полезен