我编写了一个将视频合并的代码,如果不在视频中,就不会合并,但是问题出在哪里呢?对于上下文,我试图制作一个可通过Google搜索来编译视频的脚本
from __future__ import unicode_literals
import os
from moviepy.editor import *
from pathlib import Path
def videoedit():
datafolder = Path("G:\\Projekt\\Projekt\\Clips")
file_to_open1 = datafolder / "Clip1.mp4"
file_to_open2 = datafolder / "Clip2.mp4"
file_to_open3 = datafolder / "Clip3.mp4"
file_to_open4 = datafolder / "Clip4.mp4"
file_to_open5 = datafolder / "Clip5.mp4"
clipA = []
try:
clip1 = VideoFileClip(str(file_to_open1))
clipA = clipA.extend('clip1')
except:
print("Clip1 wurde nicht gefunden")
try:
clip2 = VideoFileClip(str(file_to_open2))
clipA = clipA.extend('clip2')
except:
print("Clip2 wurde nicht gefunden")
try:
clip3 = VideoFileClip(str(file_to_open3))
clipA = clipA.extend('clip3')
except:
print("Clip3 wurde nicht gefunden")
try:
clip4 = VideoFileClip(str(file_to_open4))
clipA = clipA.extend('clip4')
except:
print("Clip4 wurde nicht gefunden")
try:
clip5 = VideoFileClip(str(file_to_open5))
clipA = clipA.extend('clip5')
except:
print("Clip5 wurde nicht gefunden")
clipA
final_clip = concatenate_videoclips(clipA)
final_clip.write_videofile("Compilation.mp4",fps=30)
videoedit()
出现错误消息(操作系统窗口):
Clip2 wurde nicht gefunden (eng: Clip2 not found)
Clip3 wurde nicht gefunden
Clip4 wurde nicht gefunden
Clip5 wurde nicht gefunden
Traceback (most recent call last):
File "youtube_s.py", line 48, in <module>
videoedit()
File "youtube_s.py", line 46, in videoedit
final_clip = concatenate_videoclips(clipA)
File "C:\python\lib\site-packages\moviepy\video\compositing\concatenate.py", line 71, in concatenate_videoclips
tt = np.cumsum([0] + [c.duration for c in clips])
TypeError: 'NoneType' object is not iterable
但是有一个clip2,clip3,clip4,clip5,该功能不适用于列表,但是为什么
答案 0 :(得分:0)
更新: 仅删除了',就会出现错误消息:
Clip1 wurde nicht gefunden(made up by myself, means :Clip# not found)
Clip2 wurde nicht gefunden
Clip3 wurde nicht gefunden
Clip4 wurde nicht gefunden
Clip5 wurde nicht gefunden
Traceback (most recent call last):
File "youtube_s.py", line 48, in <module>
videoedit()
File "youtube_s.py", line 46, in videoedit
final_clip = concatenate_videoclips(clipA)
File "C:\python\lib\site-packages\moviepy\video\compositing\concatenate.py", line 75, in concatenate_videoclips
w = max([r[0] for r in sizes])
ValueError: max() arg is an empty sequence
具有扩展名和'已删除或未删除:
Clip2 wurde nicht gefunden
Clip3 wurde nicht gefunden
Clip4 wurde nicht gefunden
Clip5 wurde nicht gefunden
Traceback (most recent call last):
File "youtube_s.py", line 48, in <module>
videoedit()
File "youtube_s.py", line 46, in videoedit
final_clip = concatenate_videoclips(clipA)
File "C:\python\lib\site-packages\moviepy\video\compositing\concatenate.py", line 71, in concatenate_videoclips
tt = np.cumsum([0] + [c.duration for c in clips])
TypeError: 'NoneType' object is not iterable
可能是发现Clip1且没有错误。
但是说实话,我现在不知道该怎么办。
答案
您必须使用clip.append(Clip1),而不是clip = clip.append(Clip1)。那会起作用的