python如何获取一个视频的帧率_python-使用OpenCV计算视频文件中的帧数?

344 篇文章 10 订阅
202 篇文章 13 订阅

官方参考:https://docs.opencv.org/4.x/d4/d15/group__videoio__flags__base.html#ggaeb8dd9c89c10a5c63c139bf7c4f5704daf01bc92359d2abc9e6eeb5cbe36d9af2

在这里插入图片描述

# -*- coding: utf-8 -*-
import time
import cv2
import pandas as pd
import numpy as np
import tensorflow as tf
from PIL import Image


# 37s 94M  超清,一秒30帧,切成图片花了74S
# video_path = './video_image/video.mp4'
# video_path = './video_image/2022-08-13-10-31-45.mp4'
video_path = './video_image/2022-08-14-09-00-06.mp4'

# log_path = './log.txt'
log_path = './log1.txt'
"""
Video review
"""
cam = cv2.VideoCapture(video_path)  # 从指定的路径读取视频
frame_count = cam.get(cv2.CAP_PROP_FRAME_COUNT)
fps = cam.get(cv2.CAP_PROP_FPS)
fps_count = fps / 2
print(fps)
print(frame_count)
currentframe = 0
time_start = time.time()
fp = open(log_path, 'a+', encoding='utf-8')
while True:
    time_start1 = time.time()
    ret, frame = cam.read()
    if ret:
        if currentframe % fps_count == 0:
            path_list = video_path.rsplit(".", 1)
            output_img_path = path_list[0] + '_' + str(currentframe) + ".jpg"
            cv2.imwrite(output_img_path, frame)   # 写入提取的图像
            time_log = time.time() - time_start1
            # print(type(time_log))
            fp.write(str(pd.Timestamp(
                time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))) + '\t' + str(time_log) + '\n')
            # print(time.time() - time_start1)
        currentframe += 1  # 增加计数器,以便显示创建了多少帧
    else:
        break
cam.release()   # 一旦完成释放所有的空间和窗口
cv2.destroyAllWindows()
print(time.time() - time_start)
fp.close()


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值