计算一个文件下的所有视频总时长

博客提供了两个优快云博客链接,分别为https://blog.youkuaiyun.com/qq_22210253/article/details/86684658和https://blog.youkuaiyun.com/HelloWorld_SDK/article/details/88088513,同时提到出现错误及解决字样,但未详述解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/qq_22210253/article/details/86684658
https://blog.youkuaiyun.com/HelloWorld_SDK/article/details/88088513
注意:
出现错误

Traceback (most recent call last):
  File "compute_duration.py", line 23, in <module>
    clip = VideoFileClip(item)
  File "D:\Python\Python36\lib\site-packages\moviepy\video\io\VideoFileClip.py", line 91, in __init__
    fps_source=fps_source)
  File "D:\Python\Python36\lib\site-packages\moviepy\video\io\ffmpeg_reader.py", line 69, in __init__
    self.initialize()
  File "D:\Python\Python36\lib\site-packages\moviepy\video\io\ffmpeg_reader.py", line 104, in initialize
    self.proc = sp.Popen(cmd, **popen_params)
  File "D:\Python\Python36\lib\subprocess.py", line 596, in __init__
    _cleanup()
  File "D:\Python\Python36\lib\subprocess.py", line 205, in _cleanup
    res = inst._internal_poll(_deadstate=sys.maxsize)
  File "D:\Python\Python36\lib\subprocess.py", line 1035, in _internal_poll
    if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] 句柄无效。

解决:clip.close()#加上这个

import os
import datetime
import sys
import argparse
from moviepy.editor import VideoFileClip

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description='Compute Total Time of a Series of Videos')
    parser.add_argument("--path", metavar="PATH", default=".",
                        help="the root path of the videos(default: .)")
    parser.add_argument("--type", metavar="TYPE", default=".mkv",
                        help="the type of the videos(default: .mkv)")
    args = parser.parse_args()
    filelist = []
    for a, b, c in os.walk(args.path):
        for name in c:
            fname = os.path.join(a, name)
            if fname.endswith(args.type):
                filelist.append(fname)
    ftime = 0.0
    for item in filelist:
        clip = VideoFileClip(item)
        ftime += clip.duration
        clip.close()#加上这个
    print("%d seconds: " % ftime,str(datetime.timedelta(seconds=ftime)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值