OpenCV获取视频文件的属性并动态显示实战(附Python源码)

简介: OpenCV获取视频文件的属性并动态显示实战(附Python源码)

需要源码和视频请点赞关注收藏后评论区留言私信~~~

获取视频文件的属性

在实际开发中,有时需要获取视频文件的属性,为此,VideoCapture类提供了get方法,语法格式如下

retval=cv2.VideoCapture.get(propId)

retval 获取与propId对应的属性值

propId 视频文件的属性值

VideoCapture类提供视频文件的属性值及其含义如下图所示

视频文件的属性值及其含义

说明如下

1:视频是由大量的,连续的图像组成的额,把其中的每一幅图像称作一帧

2:帧数指的是视频文件中含有的图像总数,帧数越多,视频播放时越流畅

3:在播放视频的过程中,把每秒显示的图像的数量称作帧速率

4:帧宽度指的是图像在水平方向上含有的像素总数

5:帧高度指的是图像在垂直方向上含有的像素总数

下面获取并输出视频文件的指定属性值实战

代码如下

import cv2
video = cv2.VideoCapture("公司宣传.avi") # 打开视频文件
fps = video.get(cv2.CAP_PROP_FPS) # 获取视频文件的帧速率
frame_Count = video.get(cv2.CAP_PROP_FRAME_COUNT) # 获取视频文件的帧数
frame_Width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取视频文件的帧宽度
frame_Height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取视频文件的帧高度
# 输出获取到的属性值
print("帧速率:", fps)
print("帧数:", frame_Count)
print("帧宽度:", frame_Width)
print("帧高度:", frame_Height)

下面我们在视频播放窗口动态显示当前视频文件的属性值

编写一个程序,在视频播放窗口动态显示当前视频播放到第几帧和该帧对应视频的第几秒

部分代码如下

import cv2
video = cv2.VideoCapture("公司宣传.avi") # 打开视频文件
fps = video.get(cv2.CAP_PROP_FPS) # 获取视频文件的帧速率
frame_Num = 1 # 用于记录第几幅图像(即第几帧),初始值为1(即第1幅图像)
while (video.isOpened()): # 视频文件被打开后
   retval, frame = video.read() # 读取视频文件
   # 设置“Video”窗口的宽为420,高为300
   cv2.namedWindow("Video", 0)
   cv2.resindow("Video", 420, 300)
   if retval == True: # 读取到视频文件后
      # 当前播到第几帧
      cv2.putTet(,frame: " + str(frame_Num), (0, 100),
               cv2.FNT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 5)
      # 该帧对应着视频的第几秒
      cv2.putTexframe, "second: " + str(round(frame_Num / fps, 2)) + "s",
               (0, 200), FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 5)
      cv2.imshow("Video", frame) # 在窗口中显示读取到的视频文件
   else: # 没有读取到视频文件
      break
   key = cv2.waitKey(50) # 窗口的图像刷新时间为50毫秒
   frame_Num += 1 #
   if key == 27: # 如果按下Esc键
      break
video.release() # 关闭视频文件
cv2.destroyAllWindows() # 销毁显示视频文件的窗口

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
22天前
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
|
24天前
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
58 4
|
1月前
|
数据采集 JavaScript 前端开发
Pyppeteer实战:基于Python的无头浏览器控制新选择
本文详细讲解了如何使用 Pyppeteer 结合爬虫代理高效采集小红书热点推荐信息。通过设置代理 IP、Cookie 和自定义 User-Agent,突破目标网站的反爬机制,实现标题、内容和评论的数据提取。文章结合代码示例与技术关系图谱,清晰展示从数据采集到分析的全流程,为复杂网站的数据获取提供参考。读者可在此基础上优化异常处理、并发抓取等功能,提升爬虫性能。
|
22天前
|
数据采集 JSON API
Python 实战!利用 API 接口获取小红书笔记详情的完整攻略
小红书笔记详情API接口帮助商家和数据分析人员获取笔记的详细信息,如标题、内容、作者信息、点赞数等,支持市场趋势与用户反馈分析。接口通过HTTP GET/POST方式请求,需提供`note_id`和`access_token`参数,返回JSON格式数据。以下是Python示例代码,展示如何调用该接口获取数据。使用时请遵守平台规范与法律法规。
|
计算机视觉 Python
|
计算机视觉 Windows Python
|
计算机视觉 Python
|
Python 计算机视觉
|
计算机视觉 Python
|
计算机视觉 索引 编解码