无法查看Python OpenCV录制的vid

2024-09-26 04:47:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做硕士学位的一个小研究项目,在编程方面没有太多经验,但我需要记录下自己的杂耍,然后跟踪球。不幸的是,我在第一阶段遇到了麻烦。这是我用来记录的代码

import numpy as np
import cv2

cap = cv2.VideoCapture(1)

# Define the codec and create VideoWriter object
out = cv2.VideoWriter('C:/Users/Sean/Videos/output1.avi', -1, 30.0, (640,480))

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

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

# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

我使用-1为fourcc选择我自己的编解码器(英特尔IYUV)。我用的是罗技C920相机。如果我录制一个非常短的视频(大约30秒),我可以观看视频并在opencv中打开它,没有任何问题。当我录制较长的视频时,我无法打开该文件。我试过在Windows媒体播放器中观看,它显示了10分钟视频的前6分钟是一个彩色屏幕,背景中有我杂耍的影子。最后4分钟没问题。我做错什么了?在


Tags: 项目importrelease视频if记录outcv2
1条回答
网友
1楼 · 发布于 2024-09-26 04:47:12

如果你有时间试着探索一下,希望能有所帮助。。在

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('C:/Users/Sean/Video/soutput.avi',fourcc, 20.0, (640,480))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)

        # write the flipped frame
        out.write(frame)

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

# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

相关问题 更多 >