鱼C论坛

 找回密码
 立即注册
查看: 1914|回复: 2

[已解决]我想用moviepy模块获取视频的时长,但是到第7个视频时会报错

[复制链接]
发表于 2020-1-16 18:18:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
思路:我想用python的视频编辑模块moviepy来获取文件夹内视频的时长,时长格式是“00:00:00”

问题:文件夹里超过7个视频的时候会报错,报错如下,看不懂QAQ

1

1



代码如下:

  1. from moviepy.editor import VideoFileClip
  2. import os
  3. import math

  4. path = input('请输入文件路径: ')
  5.    
  6. def time(path):
  7.     fileList = os.listdir(path)                     #获取文件夹内所有文件名称
  8.     for l in fileList:
  9.         if l.find('mp4') != -1:                     #筛选出mp4格式的文件名
  10.             path_1 = path + os.sep + l              #获取视频的目录
  11.             clip = VideoFileClip(path_1)
  12.             second_1 = math.floor(clip.duration)    #获取视频总时长,单位是秒
  13.             if second_1 < 60:                       #下面的代码是把秒转成00:00:00格式
  14.                 if second_1 < 10:
  15.                     second = '0' + str(second_1)
  16.                     minute = '00'
  17.                     hour = '00'
  18.                 if second_1 >= 10:
  19.                     second = str(second_1)
  20.                     minute = '00'
  21.                     hour = '00'
  22.             if second_1 >= 60:
  23.                 if second_1%60 < 10:
  24.                     second = '0' + str(second_1%60)
  25.                 if second_1%60 >= 10:
  26.                     second = str(second_1%60)
  27.                 minute_1 = math.floor((second_1 - second_1%60)/60)
  28.                 if minute_1 < 60 :
  29.                     if minute_1 < 10:
  30.                         minute = '0' + str(minute_1)
  31.                         hour = '00'
  32.                     if minute_1 >= 10:
  33.                         minute = str(minute_1)
  34.                         hour = '00'
  35.                 if minute_1 >= 60:
  36.                     if minute_1%60 < 10:
  37.                         minute = '0' + str(minute_1%60)
  38.                         hour_1 = math.floor((minute_1 - minute_1%60)/60)
  39.                         if hour_1 < 10 :
  40.                             hour = '0' + str(hour_1)
  41.                         if hour_1 >= 10:
  42.                             hour = str(hour_1)
  43.                         
  44.             print(l + ':' + str(hour) + ':'+ str(minute) +':'+ str(second))       #打印“视频名:时间”

  45. time(path)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-16 18:50:01 | 显示全部楼层    本楼为最佳答案   
可以参考一下 https://www.cnblogs.com/ykcbwdt/p/10877011.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-17 08:46:14 | 显示全部楼层
zltzlt 发表于 2020-1-16 18:50
可以参考一下 https://www.cnblogs.com/ykcbwdt/p/10877011.html。

解决了,感谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 08:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表