python统计mp4/avi视频的时长

这篇具有很好参考价值的文章主要介绍了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库则允许代码加载视频文件并执行视频编辑和处理的相关操作。这两个库的结合使得代码能够遍历指定文件夹中的视频文件并计算总时长。

代码

代码即注释,每一行也提供了注释:文章来源地址https://www.toymoban.com/news/detail-623038.html

# 导入必要的库
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视频的时长的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【音视频 ffmpeg 学习】 RTMP推流 mp4文件

    1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息(Message)。 3.当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。 (1). linux 环境准备 安装nginx 和 rtmp模块 下载nginx安装包 下载

    2024年02月03日
    浏览(67)
  • 【音视频开发】FFmpeg转换与封装 I - MP4格式

    1 FFmpeg转换与封装 1.1 MP4格式转换 1.1.1 MP4格式标准         FFmpeg支持的媒体封装格式具有多样性与全面性,与此, 我们还可以使用FFmpeg来对媒体格式进行转换与封装 。 在互联网常见的格式中,跨平台最好的应该是 MP4 文件,因为 MP4 文件既可以在PC 平台的Flashplayer中播放,

    2024年02月08日
    浏览(83)
  • 音视频编码实战-------pcm+yuv数据转成MP4

    avcodec_find_encoder: 根据编码器ID查找编码器 avcodec_alloc_context3:创建编码器上下文 avcodec_open2:打开编码器 avformat_alloc_output_context2:为输出格式创建复用器上下文 avformat_new_stream:创建音视频流 avcodec_parameters_from_context:将编码器上下文中的参数拷贝到音视频流中的编码器参数中AVCodec

    2024年02月15日
    浏览(67)
  • 音视频知识:MPEG-4、H264、MP4、AAC之间的关系

    MPEG-4 一种编码标准。是国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义的标准。MPEG(Moving Picture Experts Group)标准包括 MPEG1、MPEG2与 MPEG4。 MPEG-4标准目前分为27个部分,统称为ISO/IEC14496国际标准。其中第10部分(ISO/IEC 14496-10)就是熟悉的高级视频编码

    2024年02月14日
    浏览(68)
  • Qt音视频开发47-文字和图片水印(可存储到MP4中)

    近期花了两周时间闭门啃硬骨头,主要就解决三个问题(音视频同步存储和推流、图片水印并将水印信息存储到文件或者推流、rtsp推流),这三个问题困扰了很多年,以至于找遍了网络和翻遍ffplay代码以及ffmpeg示例的代码,通过不下于上百次方案的调整和测试,几乎每次都是

    2024年02月16日
    浏览(54)
  • 【音视频笔记】Mediacodec+Muxer生成mp4,浏览器无法播放问题处理

    最近在测试视频录制功能时发现,AudioRecord + MediaCodec + MediaMuxer生成的MP4,PC浏览器无法播放 ,但是Android、Windows、Mac的播放器应用都能正常播放。虽然不禁想吐槽浏览器视频组件的容错性差,但我也意识生成的文件格式肯定也是有问题的。 然后尝试了合成MP4视频时,只保留视

    2024年02月07日
    浏览(99)
  • Python获取音视频时长

    上代码:获取音视频时长.py pyinstaller -F 获取音视频时长.py 链接:https://pan.baidu.com/s/1WvsMyPHD3iFsM844gfC2Jg?pwd=yyds

    2024年02月15日
    浏览(55)
  • JavaScript音视频,使用JavaScript如何在浏览器录制电脑摄像头画面为MP4视频文件并下载视频文件到本地

    本章介绍使用JavaScript如何在浏览器录制电脑摄像头画面为MP4视频文件并下载视频文件到本地。 1、使用navigator.mediaDevices.getUserMedia获取摄像头画面 2、将获取到的摄像头画面渲染到canvas画板上 3、将canvas转换为blob对象 4、通过document.createElement(‘a’)调用 href 方法获取此链接并触

    2024年02月02日
    浏览(84)
  • Qt/C++音视频开发69-保存监控pcm音频数据到mp4文件/监控录像/录像存储和回放/264/265/aac/pcm等

    用ffmpeg做音视频保存到mp4文件,都会遇到一个问题,尤其是在视频监控行业,就是监控摄像头设置的音频是PCM/G711A/G711U,解码后对应的格式是pcm_s16be/pcm_alaw/pcm_mulaw,将这个原始的音频流保存到mp4文件是会报错的,在调用avformat_write_header写文件头的时候提示(-22) Invalid argument,

    2024年04月11日
    浏览(57)
  • ffmpeg把RTSP流分段录制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音视频开发的难度直接就降一个维度啊

    比如,原来我们要用ffmpeg录一段RTSP视频流转成MP4,我们有两种方案: 方案一:可以使用以下命令将rtsp流分段存储为mp4文件 ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_timestamps 1 -strftime 1 output_%Y-%m-%d_%H-%M-%S.mp4 方案二:可以直接调用ffmpeg库avcode

    2024年02月10日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包