Python - 提取和保存视频帧

新手上路,请多包涵

所以我已经按照 本教程 进行操作,但它似乎没有做任何事情。简直什么都没有。它等待几秒钟并关闭程序。这段代码有什么问题?

 import cv2
vidcap = cv2.VideoCapture('Compton.mp4')
success,image = vidcap.read()
count = 0
success = True
while success:
  success,image = vidcap.read()
  cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file
  if cv2.waitKey(10) == 27:                     # exit if Escape is hit
      break
  count += 1

此外,在评论中它说这将帧数限制为 1000?为什么?

编辑:我尝试 success = True 但这没有帮助。它只创建了一个 0 字节的图像。

原文由 GShocked 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 521
1 个回答

这里 下载这个 视频,这样我们就有了相同的视频文件进行测试。确保将该 mp4 文件放在 python 代码的同一目录中。然后还要确保从同一目录运行 python 解释器。

然后修改代码, waitKey 那是在浪费时间,而且没有窗口,它无法捕获键盘事件。我们还打印 success 值以确保它成功读取帧。

 import cv2
vidcap = cv2.VideoCapture('big_buck_bunny_720p_5mb.mp4')
success,image = vidcap.read()
count = 0
while success:
  cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file
  success,image = vidcap.read()
  print('Read a new frame: ', success)
  count += 1

怎么样?

原文由 fireant 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题