return True
except Exception as e:
print(f"Invalid video file: {file}, Error: {e}")
return False
def get_first_valid_frame(video_clip, threshold=10, num_frames=10):
total_frames = int(video_clip.fps * video_clip.duration)
frame_indices = [int(i * total_frames / num_frames) for i in range(num_frames)]
for idx in frame_indices:
frame = video_clip.get_frame(idx / video_clip.fps)
if frame.mean() > threshold:
return frame
return video_clip.get_frame(0)
def select_roi_for_mask(video_clip):
frame = get_first_valid_frame(video_clip)
# 将视频帧调整为720p显示
display_height = 720
scale_factor = display_height / frame.shape[0]
display_width = int(frame.shape[1] * scale_factor)
display_frame = cv2.resize(frame, (display_width, display_height))
#instructions = "Select ROI and press SPACE or ENTER"
#font = cv2.FON