python读取视频帧速率,写入excel中,txt中

python实现读取视频帧速率,写入excel中

  • 今天实现一个比较简单的,可能在处理视频是会常用到的读取视频帧速率的方法!
  • 因为,数据量的原因个人习惯使用os.walk()方法获取所有的视频文件
    • ps:若数据量非常大时,推荐文件夹中只有一种结尾的视频文集,要不就不适用endswith()方法获取文件。

1.获取视频路径,读取帧速率。

import os

import cv2
import openpyxl


def video_frame(dir_path, excel_path,# txt_name):
	# 标识,为了写入excel换行使用
    num = 0
    for path, dri, file in os.walk(dir_path):
        for name in file:
        	# 可以其他结尾的视频格式
            if name.endswith('.mp4'):
                path_dri = os.path.join(path, name)
                cam = cv2.VideoCapture(path_dri)
                _, fo = cam.read()
                # framei = cv2.cvtColor(fo, cv2.COLOR_BGR2GRAY)
                # 获取到视频的帧速率
                fr = int(cam.get(5))
                print("frame rate of stored video:", fr)
                # 将获取的值 写入excel中,传入name的作用,是知道那个视频的帧速率
                write_excel(name, fr, excel_path, num)
                # 写入txt方法
                # write_txt(txt_name, name, fr)
                num += 1

2.获取的文件名和帧速率写入excel中(有点小问题,我没有在代码中实现创建execl的方法,execl需要自己提前创建,将创建的execl的路径传入即可)。

def write_excel(name, fr, file_path, num):
    book = openpyxl.load_workbook(file_path)
    sheet1 = book.worksheets[0]
    # 写入第一列,mun+1换行
    txt_A = 'A' + str(num + 1)
    # 写入第二列,mun+1换行
    txt_B = 'B' + str(num + 1)
    fr_frames = str(fr) + '帧/秒'
    sheet1[txt_A] = name
    sheet1[txt_B] = fr_frames
    book.save(file_path)
    print('保存成功')
# 写入txt的方法
def write_txt(txt, name, fr_frames):
    with open(txt, 'a', encoding='utf-8') as f:
        fr_frames = str(fr_frames) + '帧/秒'
        attrs = name + '\t' + fr_frames + '\n'
        f.write(attrs)

3.调用函数测试代码

if __name__ == '__main__':
	# 视频路劲
    path = r''
    # 创建的excel路径
    excel_path = r''
    txt_name = ''
    video_frame(path, excel_path, #txt_name)

这样就可以完成对视频帧速率的读写操作了!!!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页