我做了一个合并视频的代码,如果它们不在那里,它们就不会被合并,但问题在哪里呢?对于上下文,我尝试编写一个脚本,通过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()这是错误消息(Os windows):
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,这个函数不能处理列表,但是为什么呢
发布于 2019-03-23 07:30:20
更新:只删除了‘,就会出现错误消息:
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使用extend和‘removed或not removed:
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)。这将会起作用
https://stackoverflow.com/questions/55287629
复制相似问题