Extracting image from video at a given time using OpenCV
why don't you just do, what @micka proposed ?
import cv2
vidcap = cv2.VideoCapture('d:/video/keep/Le Sang Des Betes.mp4')
vidcap.set(cv2.CAP_PROP_POS_MSEC,20000) # just cue to 20 sec. position
success,image = vidcap.read()
if success:
cv2.imwrite("frame20sec.jpg", image) # save frame as JPEG file
cv2.imshow("20sec",image)
cv2.waitKey()
# Import the necessary packages
import cv2
vidcap = cv2.VideoCapture('Wildlife.mp4')
success,image = vidcap.read()
print success
#cv2.imwrite("frame.jpg", image)
count = 0
framerate = vidcap.get(5)
print "framerate:", framerate
framecount = vidcap.get(7)
print "framecount:", framecount
vidcap.set(5,1)
newframerate = vidcap.get(5)
print "newframerate:", newframerate
while success:
success,image = vidcap.read()
#cv2.imwrite("frame%d.jpg" % count, image)
getvalue = vidcap.get(0)
print getvalue
if getvalue == 20000:
cv2.imwrite("frame%d.jpg" % getvalue, image)
#if cv2.waitKey(10) == 27:
#break
count += 1
The output is as follows
framerate: 29.97002997
framecount: 901.0
newframerate: 29.97002997
Why frame rate is not changing.I want to change frame rate to 1 so that whatever time value user gives i should be able to get image frame.