尝试在 OpenCV 中读取 HEVC (H265) 视频中的帧时"Can't find starting number (in the name of file)"



我正在尝试从opencv-python(python3,最新版本(的hevc(h265).avi视频中读取帧,但不断抛出

OpenCV(4.1.1( C:\projects\opencv-python\opencv\modules\videoio\src\cap_images.cpp:253: 错误:(-5:参数错误(CAP_IMAGES:找不到起始编号(在 文件名(:C:\用户\gabri\桌面\2019-11-22_13\a.avi in 函数 'cv::icvExtractPattern'.

我已经使用opencv-python, opencv-contrib-python and opencv-contrib-python-nonfreeubuntuwindows 10中尝试过,但没有奏效。 提前谢谢你。

用于读取视频的代码:

import cv2
import imutils
cap = cv2.VideoCapture("C:\Users\gabri\Desktop\2019-11-22_13\a.avi")

while True:
ret,frame = cap.read()
if not ret:
break
frame = imutils.resize(frame,width = 960)
cv2.imshow('image',frame)
k = cv2.waitKey(1) & 0xff
if k == 27:
break

如果未在文件名中指定扩展名,则可能会在VideoWriter类中收到此错误 就我而言,我忘记写.mp4.

我通过将绝对路径传递到VideoCapture并将文件名从example.mov更改为example_1000.mov来解决此问题。

此错误通常在函数cap = cv2.VideoCapture("video_path")cv2.VideoWriter('path_to_folder/output_save.avi')不正确时video_path弹出
主要出现在窗口中

我遇到了同样的问题,编译和链接正常,但在运行时会出现同样的神秘错误。

它发生在(使用 Windows(时opencv_videoio_ffmpeg430_64.dll无法访问(它似乎被另一个 opencv 库默默调用(。要么你没有用-DWITH_FFMPEG=ON构建opencv,要么你的dll不在路径中。

我遇到了同样的错误,并通过将视频名称更改为"001.avi"来解决它。

也许你可以在你的路径上附加一个数字,比如"a2.avi"而不是"a.avi"。

在我的情况下缺少文件扩展名:将movie更改为movie.mp4解决了问题

我的用例可能不是问题中提出的问题,但是由于opencv生成的错误消息略有误导性,我将为可能遇到类似问题的其他人留下注释。

就我而言,我收到以下错误,因为文件已损坏:

OpenCV(4.5.1) cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): /path/to/file.png in function 'icvExtractPattern'

我通过 AWS API 网关接收文件,为了避免文件损坏,我必须在 APIGateway 应用程序设置的"二进制媒体类型"部分添加"多部分/表单数据"。

对我来说,问题是文件名上需要一个数字。因此,在您的情况下,也许您可以将文件重命名为a0.avi

对我来说,错误发生在我能够批准访问相机之前。在我批准将相机用于该应用程序后,它起作用了。

相关内容

最新更新