在VideoFileClip函数中获取“OSError:[WinError 6]句柄无效”

我正在使用python通过导入moviepy库创建一个程序,但收到以下错误:

from moviepy.editor import VideoFileClip

white_output = 'videos/testVideo.mp4'
clip1 = VideoFileClip("videos/testVideo.mp4") OSError Traceback (most recent call last) -input-40-f49638833528> in >() 1 white_output = 'videos/testVideo.mp4' ----> 2 clip1 = VideoFileClip("videos/testVideo.mp4") 3 white_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!! 4 get_ipython().magic('time white_clip.write_videofile(white_output, audio=False)') C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\VideoFileClip.py in __init__(self, filename, has_mask, audio, audio_buffersize, audio_fps, audio_nbytes, verbose) 53 # Make a reader 54 pix_fmt= "rgba" if has_mask else "rgb24" ---> 55 reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt) 56 self.reader = reader 57 # Make some of the reader's attributes accessible from the clip C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\ffmpeg_reader.py in __init__(self, filename, print_infos, bufsize, pix_fmt, check_duration) 30 31 self.filename = filename ---> 32 infos = ffmpeg_parse_infos(filename, print_infos, check_duration) 33 self.fps = infos['video_fps'] 34 self.size = infos['video_size'] C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\ffmpeg_reader.py in ffmpeg_parse_infos(filename, print_infos, check_duration) 236 popen_params["creationflags"] = 0x08000000 237 --> 238 proc = sp.Popen(cmd, **popen_params) 239 240 proc.stdout.readline() C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds) 840 pass_fds=()): 841 """Create new Popen instance.""" --> 842 _cleanup() 843 # Held while anything is calling waitpid before returncode has been 844 # updated to prevent clobbering returncode if wait() or poll() are C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in _cleanup() 503 def _cleanup(): 504 for inst in _active[:]: --> 505 res = inst._internal_poll(_deadstate=sys.maxsize) 506 if res is not None: 507 try: C:\Users\hp pc\Anaconda3\envs\lib\subprocess.py in _internal_poll(self, _deadstate, _WaitForSingleObject, _WAIT_OBJECT_0, _GetExitCodeProcess) 1257 """ 1258 if self.returncode is None: -> 1259 if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0: 1260 self.returncode = _GetExitCodeProcess(self._handle) 1261 return self.returncode OSError: [WinError 6] The handle is invalid

我通过运行以下命令解决了这个问题。

video_clip.reader.close()
video_clip.audio.reader.close_proc()

某种程度上python.exe是失败的,因为内部函数比如VideoFileClip在jupyter-notebook中报错

然后我关闭了所有东西并重新启动了,错误消失了,现在它正常工作。

链接来源:

http://www.voidcn.com/article/p-orifxkfo-btn.html
 

你可能感兴趣的:(在VideoFileClip函数中获取“OSError:[WinError 6]句柄无效”)