File size: 627 Bytes
9ae3d29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from typing import Optional
import cv2

from DeepFakeAI.typing import Frame


def get_video_frame(video_path : str, frame_number : int = 0) -> Optional[Frame]:
	capture = cv2.VideoCapture(video_path)
	frame_total = capture.get(cv2.CAP_PROP_FRAME_COUNT)
	capture.set(cv2.CAP_PROP_POS_FRAMES, min(frame_total, frame_number - 1))
	has_frame, frame = capture.read()
	capture.release()
	if has_frame:
		return frame
	return None


def get_video_frame_total(video_path : str) -> int:
	capture = cv2.VideoCapture(video_path)
	video_frame_total = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
	capture.release()
	return video_frame_total