【发布时间】:2023-03-20 15:26:01
【问题描述】:
正如标题所说,我的 cv2.VideoCapture("bebop.sdp") 不起作用。我能得到的唯一调试信息是 isOpened() 返回 False。
videoFeed = cv2.VideoCapture("bebop.sdp")
while True:
ret, currentVideoFrame = videoFeed.read()
if ret:
cv2.imshow('frame',currentVideoFrame)
cv2.waitKey(1)
else:
print("FrameError - %s" % videoFeed.isOpened())
用 sample.mp4 文件替换 bebop.sdp 可以正常工作。 bebop.sdp 肯定在工作目录中(与 sample.mp4 一起)。我在这里有一个 ffmpeg dll:“C:\Users\uname\AppData\Local\Programs\Python\Python36\opencv_ffmpeg331_64.dll”。该代码在 python2.7 上运行良好(虽然我记得有类似的问题,但 dll 解决了这个问题。
我可以在 VLC 中打开 bebop.sdp 文件并收到我期望的视频。
有没有我可以访问的调试信息?
提前致谢!
【问题讨论】:
-
您确定
bebop.sdp与您执行此脚本的目录相同? -
这些都没有解决问题。我试着退后一步,使用 ffplay 而不是 opencv。这最初不起作用,但后来我意识到 ffplay 被防火墙阻止了。禁用防火墙允许 ffplay 方法工作,但使用 openCV 方法仍然是说流未打开。