# 提起整个训练集的视频,并每隔5帧将图片保存起来
import cv2
import os

TIMESEP = 25  # 读取的帧数为:25帧

def capture(root, timeSep):
    # 视频文件大概是5秒,一秒为28帧左右,一个视频共有130帧,最终读取25帧
    i = 0  # 进行计数
    c = 0  # 图片名称
    counter = 0 # 读取的帧数
    # success = False  # 读取图片是否成功
    cap = cv2.VideoCapture(root)
    if cap.isOpened():
        success, frame = cap.read()
        # 保存图片到指定文件夹
        cv2.imwrite('/home/wbx/photoes/' + str(c) + '.jpg', frame)
        c += 1
        i += 1
        counter += 1

    while success:
        success, frame = cap.read()
        if i % 5 == 0:  # 每5帧读取一次
            cv2.imwrite('/home/wbx/photoes/' + str(c) + '.jpg', frame)
            c += 1
            counter += 1
        if counter == timeSep:
            break
        i += 1
        cv2.waitKey(1)

Myroot = "/home/wbx/RLVD/Violence/V_90.mp4"
main_dir = "/Users/wbx/Downloads/RLVD"
savePath = "/home/wbx/RLVD"

def findRoot(main_dir):
    rootList = []
    flagList = []
    for x in os.listdir(main_dir):
        print(type(x))
        if x != ".DS_Store":
            td = main_dir + '/' + x + '/'
            print(td)
            for file in os.listdir(td):
                # print(file)
                filePath = os.path.join(td, file)  # 获取视频的完整路径 
                # print(filePath)
                rootList.append(filePath)
                flag = file.split('_')
                print(type(flag[0])) # flag[0]为:NV 或者 V 可以用来判断是否是暴力行为
                flagList.append(flag[0])
    return rootList, flagList


capture(root=Myroot, timeSep=TIMESEP)

rootList, flagList = findRoot(main_dir=main_dir) 
print(len(rootList))