Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 非常基本的电影脚本无法运行_Python_Ffmpeg_Moviepy - Fatal编程技术网

Python 非常基本的电影脚本无法运行

Python 非常基本的电影脚本无法运行,python,ffmpeg,moviepy,Python,Ffmpeg,Moviepy,所以,我有一个非常基本的脚本,它连接了两个视频,并添加了一个背景声音 def intro(): voiceoverIntro = AudioFileClip(audio[3]) #get path for intro.mp3 introVideo = [] temp = p1vid + p2vid + p3vid for x in temp: # add product videos to introVideo if they are longer tha

所以,我有一个非常基本的脚本,它连接了两个视频,并添加了一个背景声音

def intro():

    voiceoverIntro = AudioFileClip(audio[3]) #get path for intro.mp3


    introVideo = []
    temp = p1vid + p2vid + p3vid

    for x in temp: # add product videos to introVideo if they are longer than intro.mp3
        x = VideoFileClip(x)

        if x.duration >= voiceoverIntro.duration:
            introVideo.append(x)


    if len(introVideo) >= 1:

        #Get the video and turn off its volume
        introBg = introVideo[0].volumex(0).resize((1280,720))
        introBg = introBg.set_audio(voiceoverIntro).set_duration(voiceoverIntro.duration)


        introBg.reader.close()
        introBg.audio.reader.close_proc()

        return introBg
这个函数创建第二个剪辑

def productThreeOpener(productName):
    opener3 = VideoFileClip("media/number3.mp4").volumex(0).resize((1280,720))



    text = TextClip(productName,fontsize=60,color='white', font="Dekar")\
        .set_pos(("right", "center"))\
        .set_duration(3)\
        .set_start(2)\
        .crossfadein(1)\
        .crossfadeout(1)\
        .margin(right=200,opacity=0)

    opener3 = CompositeVideoClip([opener3, text])

    return opener3
现在我们将两个输出连接起来

最终剪辑=连接视频剪辑([intro,productThreeOpener],method=“compose”)

最终剪辑。调整大小((1280720))。写入视频文件(“output/intro.mp4”,threads=8,fps=24,progress\u bar=False)

运行上述代码将返回此错误

Traceback (most recent call last):
[MoviePy] >>>> Building video output/intro.mp4
  File "C:/Users/Akbulut/PycharmProjects/youtubeVideoEditor/vidEditor/sandbox.py", line 145, in <module>
[MoviePy] Writing audio in introTEMP_MPY_wvf_snd.mp3
    final_clip.write_videofile("output/intro.mp4", threads=8, fps=24, progress_bar=False)
  File "<decorator-gen-51>", line 2, in write_videofile
  File "C:\Program Files\Python36\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
    return f(clip, *a, **k)
  File "<decorator-gen-50>", line 2, in write_videofile
  File "C:\Program Files\Python36\lib\site-packages\moviepy\decorators.py", line 137, in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
  File "<decorator-gen-49>", line 2, in write_videofile
  File "C:\Program Files\Python36\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB
    return f(clip, *a, **k)
  File "C:\Program Files\Python36\lib\site-packages\moviepy\video\VideoClip.py", line 318, in write_videofile
    progress_bar=progress_bar)
  File "<decorator-gen-73>", line 2, in write_audiofile
  File "C:\Program Files\Python36\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
    return f(clip, *a, **k)
  File "C:\Program Files\Python36\lib\site-packages\moviepy\audio\AudioClip.py", line 213, in write_audiofile
    progress_bar=progress_bar)
  File "<decorator-gen-70>", line 2, in ffmpeg_audiowrite
  File "C:\Program Files\Python36\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
    return f(clip, *a, **k)
  File "C:\Program Files\Python36\lib\site-packages\moviepy\audio\io\ffmpeg_audiowriter.py", line 165, in ffmpeg_audiowrite
    ffmpeg_params=ffmpeg_params)
  File "C:\Program Files\Python36\lib\site-packages\moviepy\audio\io\ffmpeg_audiowriter.py", line 71, in __init__
    self.proc = sp.Popen(cmd, **popen_params)
  File "C:\Program Files\Python36\lib\subprocess.py", line 594, in __init__
    _cleanup()
  File "C:\Program Files\Python36\lib\subprocess.py", line 205, in _cleanup
    res = inst._internal_poll(_deadstate=sys.maxsize)
  File "C:\Program Files\Python36\lib\subprocess.py", line 1025, in _internal_poll
    if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] İşleyici geçersiz
Exception ignored in: <bound method FFMPEG_AudioWriter.__del__ of <moviepy.audio.io.ffmpeg_audiowriter.FFMPEG_AudioWriter object at 0x0000000A885019B0>>
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\site-packages\moviepy\audio\io\ffmpeg_audiowriter.py", line 134, in __del__
    self.close()
  File "C:\Program Files\Python36\lib\site-packages\moviepy\audio\io\ffmpeg_audiowriter.py", line 122, in close
    if self.proc:
AttributeError: 'FFMPEG_AudioWriter' object has no attribute 'proc'

Process finished with exit code 1
回溯(最近一次呼叫最后一次):
[MoviePy]>>>>构建视频输出/intro.mp4
文件“C:/Users/Akbulut/PycharmProjects/youtubeVideoEditor/vidEditor/sandbox.py”,第145行,在
[MoviePy]在introTEMP\u MPY\u wvf\u snd.mp3中编写音频
最终剪辑。写入视频文件(“output/intro.mp4”,threads=8,fps=24,progress\u bar=False)
文件“”,第2行,写入视频文件
文件“C:\Program Files\Python36\lib\site packages\moviepy\decorators.py”,第54行,需要持续时间
返回f(夹子,*a,**k)
文件“”,第2行,写入视频文件
文件“C:\Program Files\Python36\lib\site packages\moviepy\decorators.py”,第137行,默认使用\u clip\u fps\u
返回f(夹子,*新的a,**新的kw)
文件“”,第2行,写入视频文件
文件“C:\Program Files\Python36\lib\site packages\moviepy\decorators.py”,第22行,在convert\u masks\u to\u RGB中
返回f(夹子,*a,**k)
文件“C:\Program Files\Python36\lib\site packages\moviepy\video\VideoClip.py”,第318行,在write\u videofile中
进度条=进度条)
文件“”,第2行,写入音频文件
文件“C:\Program Files\Python36\lib\site packages\moviepy\decorators.py”,第54行,需要持续时间
返回f(夹子,*a,**k)
文件“C:\Program Files\Python36\lib\site packages\moviepy\audio\AudioClip.py”,第213行,在write\u audiofile中
进度条=进度条)
文件“”,第2行,ffmpeg_audiowrite格式
文件“C:\Program Files\Python36\lib\site packages\moviepy\decorators.py”,第54行,需要持续时间
返回f(夹子,*a,**k)
文件“C:\Program Files\Python36\lib\site packages\moviepy\audio\io\ffmpeg\u audiowriter.py”,第165行,在ffmpeg\u audiowrite中
ffmpeg_参数=ffmpeg_参数)
文件“C:\Program Files\Python36\lib\site packages\moviepy\audio\io\ffmpeg\u audiowriter.py”,第71行,在\uuuu init中__
self.proc=sp.Popen(cmd,**Popen_参数)
文件“C:\Program Files\Python36\lib\subprocess.py”,第594行,在\uuu init中__
_清理()
文件“C:\Program Files\Python36\lib\subprocess.py”,第205行,在_cleanup中
res=inst.\u内部\u轮询(\u deadstate=sys.maxsize)
文件“C:\Program Files\Python36\lib\subprocess.py”,第1025行,在内部轮询中
如果WaitForSingleObject(self.\u handle,0)=\u WAIT\u OBJECT\u 0:
奥瑟罗:[WinError 6]
在中忽略异常:
回溯(最近一次呼叫最后一次):
文件“C:\Program Files\Python36\lib\site packages\moviepy\audio\io\ffmpeg\u audiowriter.py”,第134行,在__
self.close()
文件“C:\Program Files\Python36\lib\site packages\moviepy\audio\io\ffmpeg\u audiowriter.py”,第122行,关闭
如果self.proc:
AttributeError:'FFMPEG_AudioWriter'对象没有属性'proc'
进程已完成,退出代码为1
我严格遵循MoviePY安装指南,大约在2天前安装了它及其所有依赖项。我在一台64b的Windows机器上工作。Python版本3.6.1

我已经被这个错误困扰了一天多了,我不知道该怎么办。。非常感谢您的帮助/建议


谢谢。

您能在不使用
线程=8的情况下尝试吗?另外,可以尝试一个非常简单的脚本,比如读一段视频,然后再把它写出来。看看这里,它可能会有所帮助
audio\u fps=44100
可以做到这一点。