| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import cv2
- import time
- import os
- def video_to_frames(input_loc, output_loc):
- """Function to extract frames from input video file
- and save them as separate frames in an output directory.
- Args:
- input_loc: Input video file.
- output_loc: Output directory to save the frames.
- Returns:
- None
- """
- try:
- os.mkdir(output_loc)
- except OSError:
- pass
- # Log the time
- time_start = time.time()
- # Start capturing the feed
- cap = cv2.VideoCapture(input_loc)
- # Find the number of frames
- video_length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) - 1
- print("Number of frames: ", video_length)
- count = 0
- print("Converting video..\n")
- # Start converting the video
- while cap.isOpened():
- # Extract the frame
- ret, frame = cap.read()
- if not ret:
- continue
- # Write the results back to output location.
- cv2.imwrite(output_loc + "/%#05d.jpg" % (count+1), frame)
- count = count + 1
- # If there are no more frames left
- if (count > (video_length-1)):
- # Log the time again
- time_end = time.time()
- # Release the feed
- cap.release()
- # Print stats
- print("Done extracting frames.\n%d frames extracted" % count)
- print("It took %d seconds forconversion." % (time_end-time_start))
- break
|