【发布时间】:2013-10-05 15:28:07
【问题描述】:
我正在使用 OpenCV python 来捕捉视频。 这是我的代码
import cv2
cap = cv2.VideoCapture("vid.mp4")
while True:
flag, frame = cap.read()
if not flag:
cv2.imshow('video', frame)
if cv2.waitKey(10) == 27:
break
当一个框架没有准备好时,它会产生这样的错误
或
Truncating packet of size 2916 to 1536
[h264 @ 0x7ffa4180be00] AVC: nal size 2912
[h264 @ 0x7ffa4180be00] AVC: nal size 2912
[h264 @ 0x7ffa4180be00] no frame!
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ffa41803000] stream 0, offset 0x14565: partial file
我想找到一种方法来隐藏这个错误!我猜这个错误是由ffmpeg 产生的。有什么办法可以隐藏或禁用它?
当我调用cap.read() 时会产生此错误。而且我还尝试用try ... except ... 包装它,但它不起作用,因为它不会抛出任何异常。
【问题讨论】:
-
我认为你只需要将 stderr 重定向到 /dev/null...
-
感谢@mguijarr 的评论。是的,当您在命令行中使用 ffmpeg 时确实如此。但是当我想用python来做的时候,我该怎么做呢?
标签: python opencv error-handling ffmpeg