You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV Python录制视频无法打开,错误码0xc10100be求助

解决OpenCV录制视频后无法打开(错误码0xc10100be)的办法

以下是针对你代码问题的具体修复点:

  • 必须添加帧写入操作
    你的代码循环里仅显示了摄像头画面,完全没执行videoFileOutput.write(frame)把捕获的帧写入输出文件,这会导致生成的视频为空或结构损坏,这是核心问题。

  • 资源释放要调用方法(加括号)
    videoFileOutput.release、cap.release、cv2.destroyAllWindows都是类方法,必须加()才能执行资源释放逻辑,否则视频文件无法正常完成收尾,导致损坏。

  • 修正帧读取的判断逻辑
    你把cap.read()的返回值变量名写成了red(正确应为ret,表示读取是否成功),必须先判断ret是否为True,确保读取到有效帧后再进行后续操作,避免写入无效数据。

  • 匹配分辨率或调整帧尺寸
    手动设置的(600,600)分辨率可能和摄像头实际输出的帧尺寸不匹配,要么获取摄像头原生分辨率,要么用cv2.resize()把捕获的帧调整到设置的尺寸后再写入。

修正后的完整代码

import cv2

cap = cv2.VideoCapture(0)
# 可选:获取摄像头原生分辨率,替换手动设置的resolution
# width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
# height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
filename = "C://Users//deniz//Desktop//cfg13131lol.avi"
codec = cv2.VideoWriter_fourcc("W", "M", "V", "2")
frameRate = 30
resolution = (600, 600)
videoFileOutput = cv2.VideoWriter(filename, codec, frameRate, resolution)

while True:
    ret, frame = cap.read()
    if not ret:  # 确保成功读取帧
        break
    cv2.imshow("webcam.", frame)
    frame = cv2.flip(frame, -1)
    # 调整帧尺寸到设置的分辨率(如果摄像头尺寸不匹配)
    frame = cv2.resize(frame, resolution)
    videoFileOutput.write(frame)  # 写入帧到视频文件
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

# 正确释放资源
videoFileOutput.release()
cap.release()
cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者bulletproofspirit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:20:28