1. Problem
I need to extract specific frames from a video file and save frames as jpg file
2. Code
#!/usr/bin/env python
'''
Usage: ./getFrame.py src.mp4 [object_frame_rate(5)]
'''
import cv2
import os
def getFrame(video_src, objRate = 5):
cam = cv2.VideoCapture(video_src)
frameRate = cam.get(cv2.CAP_PROP_FPS)
import os
if not os.path.exists('frame'):
os.mkdir('frame')
i = 0
period = int(frameRate / objRate) - 1
while True:
# read frame
ret, frame = cam.read()
if not ret:
break
cv2.imwrite("frame/{}.jpg".format(i), frame)
print "save {}.jpg".format(i)
i += 1
for e in range(period):
ret, frame = cam.read()
def main():
import sys
try:
video_src = sys.argv[1]
except:
print(__doc__)
return
if len(sys.argv) == 3:
getFrame(video_src, argv[2])
else:
getFrame(video_src)
if __name__ == '__main__':
main()