【发布时间】:2020-07-27 08:18:17
【问题描述】:
在通过 'cv2' 保存视频文件期间,我遇到了一个奇怪的问题。如果从网络摄像头进行视频捕获,则此代码运行良好,但如果从文件(例如 cap = cv2.VideoCapture("test.avi"))捕获视频,则会形成一个没有任何流的空文件。
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, w)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, h)
out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M','J','P','G'), fps, (w, h))
while cap.isOpened():
ret, frame = cap.read()
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
out.release()
cap.release()
cv2.destroyAllWindows()
我尝试更改输入视频文件的格式,例如 .avi、.ts 和输出,但没有任何改变
谁知道我为什么会遇到这个问题?
【问题讨论】:
-
你可以看看下面的post。我的答案的第一部分生成了一个合成的 AVI 视频文件。第二部分从创建的视频文件中捕获帧。 1. 按原样执行代码。 2. 将
cv2.CAP_OPENCV_MJPEG替换为cv2.CAP_FFMPEG。 3. 编辑您的帖子以从文件中捕获帧。 4. 我建议您在编辑后的帖子中包含构建合成视频的部分。
标签: python-3.x opencv