python - Opencv写视频正在运行,但保存的output.avi文件为0KB

标签 python numpy opencv

我尝试了不同的方法,但没有一个起作用。
视频正在运行,但是文件output.avi为空。
这是代码

import cv2
vid=cv2.VideoCapture(0)
if (not vid.isOpened()):
    print 'Error'
size = (int(vid.get(3)), int(vid.get(4)))
fourcc = cv2.cv.CV_FOURCC('M','J','P','G')
newVideo=cv2.VideoWriter('output.avi',fourcc,20.0,(640,360))
while(vid.isOpened()):
    ret,frame=vid.read()
    if ret is True:
       
        frame=cv2.flip(frame,0)
    
        newVideo.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1)& 0xFF==ord('q'):
            break
    
    else:
        break
vid.release()
newVideo.release()
cv2.destroyAllWindows()

最佳答案

问题很简单,您正在阅读框架,但尝试以不同的大小书写它们。
解决方案在您的代码内部。您定义了:

size = (int(vid.get(3)), int(vid.get(4)))
但是您没有像这样使用它:
newVideo=cv2.VideoWriter('output.avi',fourcc,20.0,size)
您将大小设置为手动(640,360),这不是捕获的帧的大小。

关于python - Opencv写视频正在运行,但保存的output.avi文件为0KB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63783375/

相关文章:

python - 以 Pandas 表示法转换 SQL 代码

python - Leetcode 424.最长重复字符替换: Right Pointer Incrementation

Python zip 方法和舍入行为

python - 计算每个numpy数组列中的唯一值

java - 使用android使用openCV进行汽车检测

opencv - 在 ARM Docker 容器中构建 OPENCV 时出现问题

ios - 在 ios 中使用 opencv 用网格变换图像的特定区域

python - Django查询优化: find a list of objects based on a many-to-one to a many-to-many

python - 协调两个 celery 任务

Python - 值错误 : invalid literal for float():