gpt4 book ai didi

python - VideoWriter 在 OpenCV Python 中仅输出一个 5.7kB 文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:22 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将捕获的视频存储到文件中。直播流显示正确,但无论我录制视频的长度如何,目标文件都是一个不包含任何视频的 5.7kB 文件。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

fourcc= cv2.cv.FOURCC(*'DIVX')
ret=cap.set(3,500)
ret=cap.set(4,500)

out= cv2.VideoWriter('out.avi',fourcc,20,(500,500))

while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
out.write(frame)

cv2.imshow('out.avi',frame)

if cv2.waitKey(1) &0xFF ==ord('q'):
break
else:
break


cap.release()
out.release()
cv2.destroyAllWindows()

有谁知道我在这里可能做错了什么?

请大家帮忙解答一下。

最佳答案

这可能是因为您的机器不支持/未安装 fourcc 编码,因此无法将帧导出到视频中。它总是发生在我身上。对我有用的是 mp4 编解码器(在 opencv 中:cv2.cv.CV_FOURCC('m', 'p', '4', 'v'))。所以,试试这个:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

fourcc= cv2.cv.CV_FOURCC('m', 'p', '4', 'v')
ret=cap.set(3,500)
ret=cap.set(4,500)

out= cv2.VideoWriter('out.avi',fourcc,20,(500,500))

while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
out.write(frame)

cv2.imshow('out.avi',frame)

if cv2.waitKey(1) &0xFF ==ord('q'):
break
else:
break


cap.release()
out.release()
cv2.destroyAllWindows()

否则,您可以尝试安装所有与 ffmpeg 兼容的编解码器(opencv 似乎使用 ffmpeg 将帧导出到视频文件)并重试您的原始代码。

关于python - VideoWriter 在 OpenCV Python 中仅输出一个 5.7kB 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com