Python实现统计mp4/avi视频的时长

 更新时间:2023年07月30日 10:25:25   作者:逐梦苍穹  
moviepy是一个用于处理视频和音频的Python库,它提供了一组功能丰富的工具,所以本文将利用它实现统计mp4/avi视频的时长,希望对大家有所帮助

介绍导入的库

当代码中导入了特定的库,它会使得在代码中可以使用该库所提供的功能和工具。以下是导入的两个库及其作用的解释:

import os

os(Operating System)是Python标准库之一,提供了与操作系统交互的功能。它允许您在代码中执行各种与文件和目录操作相关的任务,例如创建、删除、移动文件,获取文件属性,以及与操作系统进行交互等。在这个代码中,os库被用于执行文件和目录的遍历操作,从而计算指定文件夹中视频文件的总时长。

import moviepy.editor as mp

moviepy是一个用于处理视频和音频的Python库,它提供了一组功能丰富的工具,可以用来编辑、剪辑、合并和转换视频和音频文件。其中,moviepy.editor模块提供了视频编辑的基本功能,例如加载视频文件、获取视频时长等。在这个代码中,mp是moviepy.editor的别名,通过这个别名,我们可以使用moviepy库的功能来读取视频文件并获取视频的时长。

总结

os库允许代码与操作系统进行文件和目录操作,而moviepy.editor库则允许代码加载视频文件并执行视频编辑和处理的相关操作。这两个库的结合使得代码能够遍历指定文件夹中的视频文件并计算总时长。

代码

代码即注释,每一行也提供了注释:

# 导入必要的库
import os
import moviepy.editor as mp

# 定义一个函数,用于计算指定文件夹中视频的总时长
def get_total_duration(folder_path, video_formats=['mp4', 'avi']):
    total_duration = 0  # 用于存储视频总时长的变量(单位:秒)

    # 递归地遍历指定文件夹及其子文件夹
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            # 检查文件是否具有指定格式的视频文件
            if file.lower().endswith(tuple(video_formats)):
                file_path = os.path.join(root, file)  # 获取视频文件的完整路径
                try:
                    # 使用 moviepy 的 VideoFileClip 加载视频文件
                    clip = mp.VideoFileClip(file_path)
                    total_duration += clip.duration  # 将视频时长加入总时长
                except Exception as e:
                    # 如果处理视频时发生错误,则打印错误信息
                    print(f"处理 {file_path} 时出错: {e}")

    return total_duration  # 返回所有视频总时长(单位:秒)

# 定义一个函数,用于将总秒数转换为时、分、秒格式
def seconds_to_hours_minutes_seconds(seconds):
    hours, remainder = divmod(seconds, 3600)
    minutes, seconds = divmod(remainder, 60)
    return int(hours), int(minutes), int(seconds)

# 脚本的入口点
if __name__ == "__main__":
    # 指定包含视频的文件夹路径
    folder_path = r"你的文件路径"
    
    # 调用 get_total_duration 函数计算文件夹中视频的总时长
    total_duration = get_total_duration(folder_path, video_formats=['mp4', 'avi'])
    
    # 将总时长从秒数转换为时、分、秒格式
    total_hours, total_minutes, total_seconds = seconds_to_hours_minutes_seconds(total_duration)

    # 以人类可读的格式显示总时长
    if total_hours > 0:
        print(f"文件夹中所有视频的总时长为: {total_hours} 小时 {total_minutes} 分钟 {total_seconds} 秒")
        print(f"文件夹中所有视频的总时长为: {total_hours * 60 + total_minutes} 分钟 {total_seconds} 秒")
    else:
        print(f"文件夹中所有视频的总时长为: {total_minutes} 分钟 {total_seconds} 秒")

到此这篇关于Python实现统计mp4/avi视频的时长的文章就介绍到这了,更多相关Python统计视频时长内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+unittest+requests 接口自动化测试框架搭建教程

    Python+unittest+requests 接口自动化测试框架搭建教程

    这篇文章主要介绍了Python+unittest+requests 接口自动化测试框架搭建教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 用Python简陋模拟n阶魔方

    用Python简陋模拟n阶魔方

    这篇文章主要介绍了用Python简陋模拟n阶魔方,文中有非常详细的代码示例,对正在学习python的小伙伴呢有一定的帮助,需要的朋友可以参考下
    2021-04-04
  • PyTorch中的方法torch.randperm()示例介绍

    PyTorch中的方法torch.randperm()示例介绍

    在 PyTorch 中,torch.randperm(n) 函数用于生成一个从 0 到 n-1 的随机排列的整数序列,这篇文章主要介绍了PyTorch中的方法torch.randperm()介绍,需要的朋友可以参考下
    2024-05-05
  • python实现百度关键词排名查询

    python实现百度关键词排名查询

    这篇文章主要介绍了python实现百度关键词排名查询,需要的朋友可以参考下
    2014-03-03
  • Python根据Windows窗口截图的几种实现方法

    Python根据Windows窗口截图的几种实现方法

    文章介绍了Windows下Python截图的四种方法:PIL库(简单快速)、win32gui(精准控制窗口)、mss库(跨平台高性能)及win32API处理隐藏窗口,需注意窗口标题匹配、权限问题和DPI缩放调整,推荐常规截图用PIL或mss,需精准控制时使用win32API,需要的朋友可以参考下
    2025-10-10
  • python数字图像处理之图像自动阈值分割示例

    python数字图像处理之图像自动阈值分割示例

    这篇文章主要为大家介绍了python数字图像处理之图像自动阈值分割示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python加载文件内容的两种实现方式

    Python加载文件内容的两种实现方式

    这篇文章主要介绍了Python加载文件内容的两种实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • python如果快速判断数字奇数偶数

    python如果快速判断数字奇数偶数

    这篇文章主要介绍了python如果快速判断数字奇数偶数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python解决C盘卡顿问题及操作脚本示例

    Python解决C盘卡顿问题及操作脚本示例

    这篇文章主要为大家介绍了Python解决C盘卡顿问题脚本示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python代码实现逻辑回归logistic原理

    python代码实现逻辑回归logistic原理

    这篇文章主要介绍了python代码实现逻辑回归logistic原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论