Python OpenCV实现视频分帧与多帧合成视频完整代码示例

林见深
林见深
发布时间:2026-10-13 | 6人浏览过
原创

本文提供基于Python和OpenCV的视频处理完整代码。第一部分演示如何使用VideoReader将avi视频逐帧保存为jpg图片,第二部分展示如何读取多张png图片并合成指定帧率的avi视频。代码包含完整的参数设置与异常处理逻辑,适用于基础视频分析场景。

为了节省篇幅,以下直接展示核心实现代码。

视频分帧实现

首先介绍视频分帧的具体实现方法:


import cv2
vidcap = cv2.VideoCapture('005.avi')
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:           
   break
 count += 1

多帧合成视频实现

接着介绍如何将多帧图片合成视频的操作:


import cv2
 
def images_to_video():
  fps = 30 # 帧率
  num_frames = 500
  img_array = []
  img_width = 720
  img_height = 1280
  for i in range(num_frames+1):
    filename = "./frames/"+str(i)+".png"
    img = cv2.imread(filename)
 
    if img is None:
      print(filename + " is non-existent!")
      continue
    img_array.append(img)
 
  out = cv2.VideoWriter('demo.avi', cv2.VideoWriter_fourcc(*'DIVX'), fps,(img_width,img_height))
 
  for i in range(len(img_array)):
    out.write(img_array[i])
  out.release()
 
 
def main():
  
  images_to_video()
 
 
if __name__ == "__main__":
  main()

以上关于Python视频分帧及多帧合成视频的实例分享完毕,希望能为相关开发者提供实用参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表