Python获取音视频时长

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

4、下载地址

链接:https://pan.baidu.com/s/1WvsMyPHD3iFsM844gfC2Jg?pwd=yyds

相关推荐
Re.不晚1 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
老秦包你会3 分钟前
Qt第三课 ----------容器类控件
开发语言·qt
凤枭香6 分钟前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
ULTRA??10 分钟前
C加加中的结构化绑定(解包,折叠展开)
开发语言·c++
测试杂货铺13 分钟前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
艾派森18 分钟前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
远望清一色26 分钟前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab
confiself36 分钟前
大模型系列——LLAMA-O1 复刻代码解读
java·开发语言
小码的头发丝、43 分钟前
Django中ListView 和 DetailView类的区别
数据库·python·django
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee