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使用广度优先搜索遍历混乱地铁问题

    Python使用广度优先搜索遍历混乱地铁问题

    这篇文章主要介绍了Python使用广度优先搜索遍历混乱地铁问题,广度优先搜索算法(又称宽度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型,需要的朋友可以参考下
    2023-04-04
  • Python实现的读取/更改/写入xml文件操作示例

    Python实现的读取/更改/写入xml文件操作示例

    这篇文章主要介绍了Python实现的读取/更改/写入xml文件操作,涉及Python针对xml文件的读取、节点操作、写入等相关实现技巧,需要的朋友可以参考下
    2018-08-08
  • Python字典查找数据的5个基础操作方法

    Python字典查找数据的5个基础操作方法

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型,下面这篇文章主要给大家介绍了关于Python字典查找数据的5个基础操作方法,需要的朋友可以参考下
    2022-06-06
  • 在python中logger setlevel没有生效的解决

    在python中logger setlevel没有生效的解决

    今天小编就为大家分享一篇在python中logger setlevel没有生效的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • numpy.sum()的使用详解

    numpy.sum()的使用详解

    这篇文章主要介绍了numpy.sum()的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python如何自动获取目标网站最新通知

    Python如何自动获取目标网站最新通知

    这篇文章主要介绍了Python如何自动获取目标网站最新通知,本文给大家分享实现思路及示例代码,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • OpenCV如何去除图片中的阴影的实现

    OpenCV如何去除图片中的阴影的实现

    这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • PyTorch常用函数torch.cat()中dim参数使用说明

    PyTorch常用函数torch.cat()中dim参数使用说明

    这篇文章主要为大家介绍了PyTorch常用函数torch.cat()中dim参数使用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python开发入门——迭代的基本使用

    Python开发入门——迭代的基本使用

    这篇文章主要介绍了Python 迭代的相关资料,帮助大家更好的理解和学习python开发,感兴趣的朋友可以了解下
    2020-09-09
  • Python引用计数操作示例

    Python引用计数操作示例

    这篇文章主要介绍了Python引用计数操作,结合实例形式分析了Python引用计数相关操作与运行机制,需要的朋友可以参考下
    2018-08-08

最新评论