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

OpenCV4.5.3运行视频播放代码报错(-215:Assertion failed)求解

问题原因分析
  • 核心错误是代码缩进错误:你将capture.release()和cv.destroyAllWindows()写在了while循环内部,程序第一次循环结束就直接释放了视频读取流,第二次循环调用capture.read()时无法读取到有效帧,返回的frame为空,触发!_src.empty()的断言报错。
  • 未添加帧读取成功校验:你没有判断isTrue的返回值,就算读取失败也会强行调用cv.imshow()传入空帧,触发报错。
  • OpenCV版本冲突:你的环境中同时存在4.0.1版本的conda源OpenCV包和4.5.3版本的pip源opencv-contrib-python包,版本不匹配也可能引发API调用异常。
  • 视频路径无效:如果Video.mp4文件和你运行的脚本不在同一工作目录,或者文件名拼写错误,VideoCapture初始化失败也会导致读取不到帧。
解决方案

1. 修正代码逻辑和缩进

调整资源释放代码的缩进位置,同时添加帧读取成功校验,修改后代码如下:

import cv2 as cv

# 也可以填写视频的绝对路径,比如r'C:\Users\你的用户名\Desktop\Video.mp4'
capture = cv.VideoCapture('Video.mp4') 

while True:
    isTrue, frame = capture.read()
    # 读取失败直接跳出循环(比如视频播放完毕、文件损坏、路径错误)
    if not isTrue:
        break
    cv.imshow('Video', frame)

    if cv.waitKey(20) & 0xFF == ord('d'): 
         break

# 注意这两行要放在while循环外面,循环结束后再释放资源
capture.release()
cv.destroyAllWindows()

2. 统一OpenCV版本

先卸载所有已安装的OpenCV相关包:

pip uninstall opencv-python opencv-contrib-python libopencv py-opencv -y
conda remove libopencv opencv py-opencv -y

再安装版本一致的OpenCV包:

pip install opencv-python==4.5.3.56 opencv-contrib-python==4.5.3.56

3. 确认视频路径有效性

将视频文件和脚本放在同一文件夹下,或者传入视频的完整绝对路径,避免相对路径找不到文件的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:30:03