如何从Python中的mp4视频中获得一个随机帧



我的目录中有一个mp4视频,我需要从Python中捕获一个随机帧。我该怎么做?

我目前正在使用这段代码,但它正在抢占第一帧。我需要它从所有的帧中随机挑选。

mp4_directory = 'video.mp4'
frames = 324000
random_frame = random.randrange(0, frames)
vidcap = cv2.VideoCapture(mp4_directory)
success,image = vidcap.read()
count = random_frame - 1
while count < random_frame:
cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file      
success,image = vidcap.read()
print('Read a new frame: ', success)
count += 1

试试这样的东西:

vidcap = cv2.VideoCapture("myvideo.mp4")
# get total number of frames
totalFrames = vidcap.get(cv2.CAP_PROP_FRAME_COUNT)
randomFrameNumber=random.randint(0, totalFrames)
# set frame position
vidcap.set(cv2.CAP_PROP_POS_FRAMES,randomFrameNumber)
success, image = vidcap.read()
if success:
cv2.imwrite("random_frame.jpg", image)

最新更新