Spaces:
Runtime error
Runtime error
import cv2 | |
import os, shutil | |
def ExtractFrames(videoPath): | |
directory = "data/output" | |
if os.path.exists(directory): | |
shutil.rmtree(directory) | |
# Path to the video file | |
video_path = videoPath | |
# Directory to save the frames | |
output_dir = 'data/output/extracted-frames' | |
os.makedirs(output_dir, exist_ok=True) | |
# Open the video file | |
video_capture = cv2.VideoCapture(video_path) | |
# Check if the video was opened successfully | |
if not video_capture.isOpened(): | |
print(f"Error: Could not open video file {video_path}") | |
else: | |
print(f"Successfully opened video file {video_path}") | |
# Frame index | |
frame_index = 0 | |
while True: | |
# Read the next frame from the video | |
success, frame = video_capture.read() | |
# If there are no more frames, break the loop | |
if not success: | |
print("No more frames to read or an error occurred.") | |
break | |
# Construct the filename for the frame | |
frame_filename = os.path.join(output_dir, f'frame_{frame_index:04d}.png') | |
# Save the current frame as an image file | |
cv2.imwrite(frame_filename, frame) | |
# Print the saved frame information | |
print(f'Saved {frame_filename}') | |
# Increment the frame index | |
frame_index += 1 | |
# Release the video capture object | |
video_capture.release() | |
return output_dir | |
print('All frames extracted.') | |