• 在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)
    <ipython-input-40-f49638833528> in <module>()
          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:Usershp pcAnaconda3envslibsite-packagesmoviepyvideoioVideoFileClip.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:Usershp pcAnaconda3envslibsite-packagesmoviepyvideoioffmpeg_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:Usershp pcAnaconda3envslibsite-packagesmoviepyvideoioffmpeg_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:Usershp pcAnaconda3envslibsubprocess.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:Usershp pcAnaconda3envslibsubprocess.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:Usershp pcAnaconda3envslibsubprocess.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
     
  • 相关阅读:
    Hibernate 组合主键映射
    Hibernate 对象的生命周期及CRUD操作
    Hibernate *.hbm.xml对象关系映射文件详解
    Hibernate.cfg.xml详解
    hibernate4日志配置
    Hibernate第一个程序
    hibernate-release-4.3.11.Final资源包介绍
    (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
    redis CONFIG REWRITE介绍
    (转)Linux core 文件介绍与处理
  • 原文地址:https://www.cnblogs.com/ykcbwdt/p/10877011.html
Copyright © 2020-2023  润新知