Python获取音视频时长
Python获取音视频时长
1、安装插件
powershell
pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple
2、获取音视频时长.py
上代码:获取音视频时长.py
python
# -*- coding: utf-8 -*-
from moviepy.editor import VideoFileClip
# import moviepy.editor.VideoFileClip
import os
import time
def get_time(seconds):
hour = seconds // 3600 #ok,向下取整
if len(str(hour)) != 2:
hour2 = "0" + str(hour)
else:
hour2 = str(hour)
miniute = (seconds - hour * 3600) // 60 #取余
if len(str(miniute)) != 2:
miniute2 = "0" + str(miniute)
else:
miniute2 = str(miniute)
second = seconds - hour * 3600 - miniute * 60
if len(str(second)) == 1:
second2 = "0" + str(second)
else:
second2 = str(second)
return str(hour2) + ":"+ str(miniute2) + ":" + str(second2)
#得到文件夹下的所有文件
def file_name(file_dir,file_type):
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
# if os.path.splitext(file)[1] == '.wmv':
if os.path.splitext(file)[1] == file_type:
L.append(os.path.join(root, file))
return L
# 得到日期格式
# def get_date_string_file():
# # return time.strftime("%Y%m%d_%H%M%S",time.localtime())
# return time.strftime("%Y%m%d", time.localtime())
# 在制定目录创建文件,存在的话就追加写入
def create_text_file(log_file_name,content):
with open(log_file_name, 'a+') as f:
f.write(content + '\n') # 加\n换行显示
f.close()
# file_dir = "D:/wmv"
# file_type = '.wmv'
file_dir = input("请输入文件目录,例如:'D:/wmv':")
file_type = input("请输入文件扩展名,例如:'.wmv':")
log_file_name = input("请输入日志文件存放目录,例如:'D:/20220115.log':")
# log_file_name = "D:/" + get_date_string_file() + '.txt'
total_times = 0
for file in file_name(file_dir,file_type):
# print(file)
# file = "D:/Video_2022-01-08_011427.wmv"
clip = VideoFileClip(file)
times = str(clip.duration)
# times = times.splitlines()[-1].strip()
# # print(times)
# # print(int(float(times)))
file_time = get_time(int(float(times)))
print(file + " 文件时长:" + file_time)
create_text_file(log_file_name, file + " 文件时长:" + file_time)
total_times = total_times + int(float(times))
# print(file+ " 文件时长:" + str(total_times))
# print("total_times = "+ str(total_times))
print("总时间为:"+get_time(total_times))
create_text_file(log_file_name, "总时间为:"+get_time(total_times))
file_type = input("程序执行完毕,请按任意键退出...")
3、打包exe
pyinstaller -F 获取音视频时长.py