当前位置: 首页 > article >正文

Python解析视频FPS(帧率)、分辨率信息

以下介绍使用Python解析视频的 FPS(帧率)和分辨率信息的方法:

Python 解析视频 FPS 和分辨率信息

在 Python 中,我们可以借助第三方库opencv-python(通常简称为cv2)来实现对视频相关信息的解析,示例代码如下:

import cv2

def get_video_info(video_path):
    video = cv2.VideoCapture(video_path)
    if not video.isOpened():
        print("无法打开视频文件")
        return

    # 获取帧率(FPS)
    fps = video.get(cv2.CAP_PROP_FPS)
    # 获取视频宽度(分辨率的一部分)
    width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
    # 获取视频高度(分辨率的一部分)
    height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))

    print(f"视频帧率(FPS): {fps}")
    print(f"视频分辨率: {width}x{height}")

    video.release()


video_path = "your_video_file_path.mp4"  # 替换为实际的视频文件路径
get_video_info(video_path)

在上述代码中:

  1. 首先使用cv2.VideoCapture函数打开指定路径的视频文件,如果无法打开会给出相应提示并返回。
  2. 通过video.get(cv2.CAP_PROP_FPS)获取视频的帧率信息,这里CAP_PROP_FPSopencv-python库中用于指定获取帧率属性的常量。
  3. 利用video.get(cv2.CAP_PROP_FRAME_WIDTH)video.get(cv2.CAP_PROP_FRAME_HEIGHT)分别获取视频帧的宽度和高度,也就是视频的分辨率信息,并且将获取到的值转换为整数类型,最后打印输出相应的信息,完成后使用video.release()释放视频资源。

除了opencv-python库外,还可以使用moviepy库来获取视频信息,示例如下:

from moviepy.editor import VideoFileClip

def get_video_info_moviepy(video_path):
    clip = VideoFileClip(video_path)
    fps = clip.fps
    width, height = clip.size
    print(f"视频帧率(FPS): {fps}")
    print(f"视频分辨率: {width}x{height}")
    clip.close()

video_path = "your_video_file_path.mp4"  # 替换为实际的视频文件路径
get_video_info_moviepy(video_path)

这里通过VideoFileClip类加载视频文件,然后直接通过clip.fps获取帧率,clip.size获取视频的宽度和高度组成的元组(即分辨率信息),最后别忘记调用clip.close()关闭资源。


http://www.kler.cn/a/404587.html

相关文章:

  • 【智谱清言-注册_登录安全分析报告】
  • Android智能座舱,视频播放场景,通过多指滑屏退回桌面,闪屏问题的另一种解法
  • QoE和QoS的区别
  • 小程序-使用 iconfont 图标库报错:Failed to load font
  • Spark RDD 的宽依赖和窄依赖
  • 自然语言处理:第六十三章 阿里Qwen2 2.5系列
  • Qt桌面应用开发 第六天(鼠标事件 定时器事件 定时器类 事件分发器 事件过滤器)
  • p2p网络介绍
  • 编程语言的前后端分离:可用JavaScript运行时作为后端的语言及与传统编程语言的对比 -Typescript、Nim、Moonbit
  • HarmonyOS鸿蒙系统上File文件常用操作
  • 【vue】项目迭代部署后 自动清除浏览器缓存
  • NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能
  • 前端css 实现 背景渐变,边框渐变
  • 常用并发设计模式
  • 如何在 Microsoft Edge 中设置代理: 快速而简单的方法
  • 学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
  • 【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)
  • JS学习 - 函数与作用域
  • Redis作为分布式锁,得会避坑
  • SpringBoot与MongoDB深度整合及应用案例
  • Docker1:认识docker、在Linux中安装docker
  • linux之调度管理(8)-SMP cpu 的 psci启动
  • linux之调度管理(11)-cpu动态调频总体架构
  • 华为流程L1-L6业务流程深度细化到可执行
  • 【Linux】基于 Busybox 构建嵌入式 Linux(未完成)
  • 2024 hkcertctf web 部分wp