python获取视频时长

今天有个需求,需要获取视频时长:

  • 方法一:使用moviepy库打开视频文件并获取视频剪辑对象,然后通过剪辑对象获得视频时长。
  • 方法二:使用cv2库通过打开视频文件并获取帧率和总帧数两个属性,计算视频时长。

请注意:以下代码示例只适合读取本地视频文件,如果需要从网络视频流中获取时长,需要使用不同的方法。

让我郁闷的是cv2库,我安装总是报错,最终还是没有安装上

这里使用方法一,方法二中的cv2包我安装失败了。

python 复制代码
from moviepy.editor import VideoFileClip
import time

def get_video_duration(filepath):
    clip = VideoFileClip(filepath)
    duration = clip.duration
    clip.close()
    return duration


duration = get_video_duration(r"E:\Downloads\佛爷哥五杀.mp4")

##上面这个函数所获得的视频时长为秒,但是我想要的是分钟,或者是具有可读性的时间格式。

def seconds_to_time(seconds):
    # SecToConvert = 56000

    MinutesGet, SecondsGet = divmod(seconds, 60)
    HoursGet, MinutesGet = divmod(MinutesGet, 60)

    # 省略小数点
    HoursGet = int(HoursGet)
    MinutesGet = int(MinutesGet)
    SecondsGet = int(SecondsGet)

    print("视频时长:", HoursGet, "小时", MinutesGet, "分", SecondsGet, "秒")


seconds_to_time(duration)

运行结果:

bash 复制代码
视频时长: 0 小时 2 分 5 秒
相关推荐
中年程序员一枚8 分钟前
让postman调用python的开发接口,链接sqlite数据库,让前后联动起来
数据库·python·postman
进击的荆棘11 分钟前
C++起始之路——类和对象(下)
开发语言·c++
帅得不敢出门16 分钟前
精简Android SDK(AOSP)的git项目提高git指令速度
android·java·开发语言·git·elasticsearch
liu****17 分钟前
10.排序
c语言·开发语言·数据结构·c++·算法·排序算法
爱写Bug的小孙17 分钟前
Tools、MCP 和 Function Calling
开发语言·人工智能·python·ai·ai编程·工具调用
小小Fred19 分钟前
FreeRTOS函数prvInitialiseNewTask解析
java·开发语言
rgb2gray19 分钟前
城市韧性与交通基础设施系统耦合协调度的时空演变及影响因素
网络·人工智能·python·ai·写作·耦合·耦合协调
初级炼丹师(爱说实话版)25 分钟前
大模型部署-数据并行/模型并行
人工智能·python
小杜的生信筆記26 分钟前
基于R语言绘制网络图,新人选手上手
开发语言·r语言·生物信息学·组学
小码哥06829 分钟前
家政服务管理-家政服务管理平台-家政服务管理平台源码-家政服务管理平台java代码-基于springboot的家政服务管理平台
java·开发语言·spring boot·家政服务·家政服务平台·家政服务系统·家政服务管理平台源码