Mis*_*M23 4 python opencv fourcc
我最近开始使用opencv-python进行编程,但是当我尝试使用cv2编写视频时遇到了麻烦。脚本的输出为空。这是我的代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'h263')
out = cv2.VideoWriter('cv2_camera_output.mp4',fourcc, 20.0, (800,600))
while True:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)
    out.write(frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
out.release()
cv2.destroyAllWindows()
我猜想这个问题与fourcc编解码器有关。所以我用谷歌搜索是否有适用于mac的fourCC编解码器(我正在使用OS X 10.12.3(Sierra)),但所有建议均不适用于我的计算机,因此问题甚至可能不在fourCC编解码器中。这些是我访问过的链接:
OpenCV文档(我没有遵循这个文档,只是为了确保它也没有用)
有人知道真正的问题吗?任何帮助都会很棒
框架的宽度和高度必须与的宽度和高度相同VideoWriter。只需在此之前添加即可out.write(frame),您可能会很好:
frame = cv2.resize(frame,(800,600))
或将您的尺寸更改VideoWriter为网络摄像头框架的初始尺寸。我的是(640,480)。我认为,如果您的操作系统不支持该格式,那么它将什么都不会写。甚至不会创建一个空文件。我在Linux上,我认为'h263'不能在其上运行,但是'h264'可以。当我使用“ h263”时,它不会生成任何文件。