python-opencv打开并保存视频
时间: 2023-10-20 16:05:36 浏览: 111
要打开并保存视频,您可以使用Python中的OpenCV库。以下是一个示例代码,展示了如何打开视频、逐帧读取视频、处理每一帧,并将处理后的帧保存为新的视频文件:
```python
import cv2
# 打开原始视频文件
cap = cv2.VideoCapture('input_video.mp4')
# 检查视频是否成功打开
if not cap.isOpened():
print("无法打开视频文件")
exit()
# 获取原始视频的基本信息
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建VideoWriter对象,用于保存处理后的视频
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output_video.avi', fourcc, fps, (width, height))
while True:
# 逐帧读取视频
ret, frame = cap.read()
# 检查是否到达视频末尾
if not ret:
break
# 在每一帧上进行处理(这里只是一个示例,您可以根据需要进行自定义操作)
processed_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 将处理后的帧写入输出视频文件
out.write(processed_frame)
# 在窗口中展示每一帧
cv2.imshow('Video', processed_frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放cap和out对象,关闭窗口
cap.release()
out.release()
cv2.destroyAllWindows()
```
请确保将代码中的`input_video.mp4`替换为实际的输入视频文件路径,将`output_video.avi`替换为您想要保存的输出视频文件路径。这段代码将逐帧读取输入视频,并在每一帧上进行处理(在示例中,将每一帧转换为灰度图像),最后将处理后的帧写入输出视频文件。同时,每一帧也会在一个窗口中展示出来。按下 'q' 键可以退出循环。
希望这可以满足您的需求!如有任何问题,请随时提问。
阅读全文