out = cv2.VideoWriter('output_video.mp4', fourcc, fps, (width, height)) TypeError: VideoWriter() missing required argument 'frameSize' (pos 5)
时间: 2023-12-02 20:02:06 浏览: 35
这个错误通常是因为 `frameSize` 参数传递不正确导致的。请确保 `width` 和 `height` 参数的值是正确的。你可以使用以下代码来获取视频的宽度和高度:
```python
import cv2
video = cv2.VideoCapture('input_video.mp4')
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
```
如果你仍然遇到问题,请检查 `fourcc` 和 `fps` 参数是否正确传递。
相关问题
fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc, fps, (640, 480))
这段代码使用了OpenCV库中的`cv2.VideoWriter()`函数,该函数用于将图像序列写入视频文件。其中`fourcc`参数是一个4字节码,指定了编码视频帧的压缩器类型。在这个例子中,`fourcc = cv2.VideoWriter_fourcc(*'XVID')`将使用XVID编码器[^2]。
`out = cv2.VideoWriter('output.avi', fourcc, fps, (640, 480))`创建了一个名为`output.avi`的视频文件,并将其作为输出流`out`。其中,`fps`参数指定了视频的帧率,`(640, 480)`参数指定了视频的宽度和高度。该函数返回一个`cv2.VideoWriter`对象,该对象可以使用`out.write(frame)`将每帧图像写入输出流中。
if video_save_path!="": fourcc = cv2.VideoWriter_fourcc(*'XVID') size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT))) out = cv2.VideoWriter(video_save_path, fourcc, video_fps, size)
这段代码是用来创建一个视频写入器,将捕获到的视频帧写入到一个新的视频文件中。其中,video_save_path 表示视频保存的路径,fourcc 是一个四字节码,用来指定编解码器,size 表示视频帧的大小,out 是创建的视频写入器对象。视频帧的大小可以通过读取视频捕获对象的属性 cv2.CAP_PROP_FRAME_WIDTH 和 cv2.CAP_PROP_FRAME_HEIGHT 获取。视频帧率 video_fps 则需要在调用这段代码前指定。