我正在寻找一种方法来检查视频文件是否已损坏。
我正在使用 cv2(用于 python 的 OpenCV)加载视频。如果视频文件已损坏,我想跳过该文件并转到下一个。
我发现了这个stackoverflow 问题,因此尝试了这个:
try:
vid = cv2.VideoCapture(corrupt_video_file)
except cv2.error as e:
print(e)
except:
print('error')
Run Code Online (Sandbox Code Playgroud)
但我仍然收到以下错误:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1b2d000] moov atom not found Unable to stop the stream: Inappropriate ioctl for device OpenCV Error: Unspecified error (GStreamer: unable to start pipeline ) in cvCaptureFromCAM_GStreamer, file /home/student/programs/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp, line 890 VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)): raised OpenCV exception:
/home/student/programs/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp:890: error: (-2) GStreamer: unable to start pipeline in function cvCaptureFromCAM_GStreamer
Run Code Online (Sandbox Code Playgroud)
似乎引发了 cpp 错误而不是 python 错误。(我从源代码编译了 opencv,其他项目需要)
是否也可以捕获那些 cpp 错误? …