Python-opencv 调用本地摄像头录制视频并保存 / 【解决问题】视频保存下来是0kb或6kb,无法打开

本博客运行环境为Windows,python 3.7 。要提前安装好opencv库。

调用本地摄像头录制视频并保存。保存下来的视频命名为output.avi

代码如下

import cv2

cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while cap.isOpened():
    ret, frame = cap.read()
    if ret == True:
        out.write(frame)
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('1'):
            break
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()

视频保存的问题

从一开始运行只有0kb到后面运行的6kb无法播放,再到最终的成功的调用保存下来。网上的各种保存问题大概是都遇到上了一遍吧。解决方法也都尝试了,但是无果。
1、视频保存下来0kb,无法打开
0kb可能是由于编码格式与电脑的不符合,电脑上没有相应的编码格式。曾下过解码器转换器等,但也没啥用。不过还是可以尝试一下。
2、视频保存下来6kb,无法打开
6kb可能是因为摄像头拍摄的视频分辨率与opencv中最大只有640*480分辨率不符。可以查看之前视频的文件长宽来更改代码中的视频长宽。不过我更改了多次也无用,或许是因为运行了太多次了吧。
最后解决办法是新建了一个.py文件,重新运行就成功了。

修改视频长宽,直接修改视频编码格式可参看下图。
Python-opencv 调用本地摄像头录制视频并保存 / 【解决问题】视频保存下来是0kb或6kb,无法打开_第1张图片

你可能感兴趣的:(Python,python,opencv)