OpenCV 中如何保存视频?

· 约 3 分钟读完 · 第 106 / 144 章

推荐答案

在 OpenCV 中,保存视频可以通过 cv2.VideoWriter 类来实现。以下是一个示例代码:

本题详细解读

1. cv2.VideoWriter 的初始化

cv2.VideoWriter 是 OpenCV 中用于保存视频的类。它的构造函数需要以下参数:

  • filename: 输出视频文件的名称,例如 'output.avi'。
  • fourcc: 视频编码格式,通常使用 cv2.VideoWriter_fourcc 来指定。常见的编码格式包括:
    • 'XVID': 适用于 AVI 格式。
    • 'MJPG': 适用于 Motion-JPEG 编码。
    • 'MP4V': 适用于 MP4 格式。
  • fps: 视频的帧率,即每秒显示的帧数。
  • frameSize: 视频的分辨率,通常是一个元组 (width, height)。

2. 写入视频帧

在视频捕获的循环中,每一帧图像可以通过 out.write(frame) 写入到视频文件中。frame 是一个 NumPy 数组,表示当前捕获的图像帧。

3. 释放资源

在视频捕获和写入完成后,必须调用 cap.release() 和 out.release() 来释放资源。此外,使用 cv2.destroyAllWindows() 关闭所有 OpenCV 窗口。

4. 注意事项

  • 编码格式与文件扩展名匹配: 确保 fourcc 指定的编码格式与输出文件的扩展名匹配。例如,使用 'XVID' 编码时,文件扩展名应为 .avi。
  • 分辨率一致: 确保写入的每一帧图像的分辨率与 VideoWriter 初始化时设置的分辨率一致,否则可能会导致写入失败或视频损坏。

通过以上步骤,你可以在 OpenCV 中成功保存视频。